パッケージとインポート
CoddyのGOジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 3/107。
すべてのGoファイルは、package宣言で始まります。importキーワードは、Goの標準ライブラリからパッケージを取り込み、その関数を使用できるようにします。
単一のパッケージをインポートする
import "fmt"インポートブロックを使用して、複数のパッケージをインポートします。
import (
"fmt"
"math"
"strings"
)インポートしたパッケージの関数は、パッケージ名をプレフィックス(接頭辞)として使用します。
package main
import (
"fmt"
"strings"
"math"
)
func main() {
upper := strings.ToUpper("hello")
fmt.Println(upper) // 出力: HELLO
root := math.Sqrt(16)
fmt.Println(root) // 出力: 4
}一般的な標準ライブラリパッケージ
"fmt" // フォーマット済みI/O (Print, Scan, Sprintf)
"strings" // 文字列操作 (ToUpper, Contains, Replace)
"math" // 数学関数 (Sqrt, Pow, Pi)
"strconv" // 文字列変換 (Itoa, Atoi)パッケージの関数にアクセスするには、packagename.FunctionName を使用します。Goでは、実際に使用するパッケージのみをインポートできます。使用されていないインポートはコンパイルエラーになります。
チャレンジ
中級関数が正しく動作するように、utils.go のインポート文を修正してください。strings パッケージと math パッケージをインポートする必要があります:
FormatTextはstrings.ToUpperを使用しますContainsWordはstrings.Containsを使用しますSquareRootはmath.Sqrtを使用します
チートシート
すべてのGoファイルはpackage宣言から始まります。Goの標準ライブラリからパッケージを取り込むには、importキーワードを使用します。
単一のパッケージをインポートする:
import "fmt"インポートブロックを使用して複数のパッケージをインポートする:
import (
"fmt"
"math"
"strings"
)packagename.FunctionNameを使用して、インポートされたパッケージの関数にアクセスします:
package main
import (
"fmt"
"strings"
"math"
)
func main() {
upper := strings.ToUpper("hello")
fmt.Println(upper) // 出力: HELLO
root := math.Sqrt(16)
fmt.Println(root) // 出力: 4
}一般的な標準ライブラリパッケージ:
"fmt" // フォーマット済みI/O (Print, Scan, Sprintf)
"strings" // 文字列操作 (ToUpper, Contains, Replace)
"math" // 数学関数 (Sqrt, Pow, Pi)
"strconv" // 文字列変換 (Itoa, Atoi)注意:Goでは実際に使用するパッケージのみをインポートできます。使用されていないインポートはコンパイルエラーの原因となります。
自分で試してみよう
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
line := scanner.Text()
parts := strings.Fields(line)
numStr := parts[len(parts)-1]
text := strings.Join(parts[:len(parts)-1], " ")
num, _ := strconv.ParseFloat(numStr, 64)
fmt.Printf("Upper: %s\n", FormatText(text))
fmt.Printf("Contains 'world': %t\n", ContainsWord(text, "world"))
fmt.Printf("Sqrt: %.2f\n", SquareRoot(num))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
1Go オブジェクト指向の基礎
外部ファイルGo ワークスペースとモジュールパッケージとインポート公開された名前と非公開の名前Go におけるオブジェクト指向入門クラスとしての構造体構造体へのメソッド定義ポインタレシーバと値レシーバ構造体の初期化コンストラクタ関数まとめ:簡易計算機8エラー処理とOOP
error インターフェースカスタムエラー型エラーラッピング (fmt.Errorf)センチネルエラーerrors.Is() と errors.As()Panic、Defer、Recover復習 - ファイルパーサー