パッケージとインポート
CoddyのGOジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 3/107。
すべての Go ファイルは package 宣言で始まります。import キーワードは Go の標準ライブラリからパッケージを取り込むため、パッケージの関数を使用できます。
単一のパッケージをインポートする
import "fmt"import ブロックを使用して複数の package をインポートする
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を使用して、パッケージからfunctionsにアクセスします。Goでは実際に使用するパッケージのみimportできます。未使用のimportがあるとコンパイルエラーになります。
チャレンジ
中級utils.go の import 文を修正して、関数が正しく動作するようにしてください。strings パッケージと math パッケージをインポートする必要があります。
FormatTextはstrings.ToUpperを使用しますContainsWordはstrings.Containsを使用しますSquareRootはmath.Sqrtを使用します
自分で試してみよう
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復習 - ファイルパーサー自分で練習してみよう: Goオンラインコンパイラ