Go ワークスペースとモジュール
CoddyのGOジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 2/107。
Goモジュールは、関連するGoファイルの集まりです。プロジェクトのルートにある go.mod ファイルは、モジュール名とGoのバージョンを宣言します。
ターミナルコマンドでモジュールを初期化します
go mod init myappこれにより、go.mod ファイルが作成されます
module myapp
go 1.21シンプルなプロジェクト構造
myapp/
├── go.mod
├── main.go
└── helper.goすべてのファイルが同じパッケージを共有します
// helper.go
package main
func Double(n int) int {
return n * 2
}// main.go
package main
import "fmt"
func main() {
result := Double(5)
fmt.Println(result) // 出力: 10
}go.mod ファイルは、プロジェクトをモジュールとして定義します。同じ package を宣言しているすべての .go ファイルは、お互いの関数に直接アクセスできます。go.mod 内のモジュール名は、プロジェクトを識別します。
チャレンジ
簡単同じモジュールおよびパッケージ内の mathhelper.go を完成させてください:
Double— n * 2 を返しますTriple— n * 3 を返しますSquare— n * n を返します
チートシート
Goモジュールは、プロジェクトのルートにある go.mod ファイルによって宣言された、関連するGoファイルの集まりです。
モジュールを初期化します:
go mod init myappこれにより、go.mod ファイルが作成されます:
module myapp
go 1.21同じパッケージ内のすべての .go ファイルは、お互いの関数に直接アクセスできます:
// helper.go
package main
func Double(n int) int {
return n * 2
}// main.go
package main
import "fmt"
func main() {
result := Double(5)
fmt.Println(result) // 出力: 10
}自分で試してみよう
package main
import "fmt"
func main() {
var n int
fmt.Scan(&n)
fmt.Printf("Double: %d\n", Double(n))
fmt.Printf("Triple: %d\n", Triple(n))
fmt.Printf("Square: %d\n", Square(n))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
1Go オブジェクト指向の基礎
外部ファイルGo ワークスペースとモジュールパッケージとインポート公開された名前と非公開の名前Go におけるオブジェクト指向入門クラスとしての構造体構造体へのメソッド定義ポインタレシーバと値レシーバ構造体の初期化コンストラクタ関数まとめ:簡易計算機8エラー処理とOOP
error インターフェースカスタムエラー型エラーラッピング (fmt.Errorf)センチネルエラーerrors.Is() と errors.As()Panic、Defer、Recover復習 - ファイルパーサー