バージョン 1.18

作成目的: 前回、Go プロジェクト内で別の自分自身で書いたプロジェクトを参照しようとしたところ、数時間も悩み、甚だしいほど困難に感じたため、あきらめかけた。

1 プロジェクトの作成

gogogo というディレクトリを作成し、そこに2つのプロジェクトを作成します:

main.go をそれぞれ作成

utils/main.go

1
2
3
4
5
6
package utils
import "fmt"
// 大写才能被外部アクセス
func Log(){
fmt.Print("go mod is shit")
}

demo/main.go

1
2
3
4
5
6
7
8
9
package main
import (
"fmt"
"utils" // 这个就是我们的另一个项目
)
func main() {
fmt.Print("hello\n")
utils.Log() // 调用另一个项目的方法
}

2 プロジェクトをそれぞれ初期化 (go mod init プロジェクト名)

1
2
3
cd demo 
go mod init demo
go mod tidy

1
2
3
cd utils
go mod init utils
go mod tidy

此时コード構造如下,自动生成了go.mod

!!!注意: 如果你initのプロジェクト名包含キーワードやgo使用的名称,则会失敗!!!

エラーデモ

3 重頭戏: go.modを修正

使用replaceキーワード指定 引入のパッケージ名に対応するディレクトリ

此时使用go mod tidy (このコマンド其实是goが依存関係を処理するもので、遠端の依存関係があれば自動的にダウンロードする)
結果,go.modが微妙に変わったことに気づく?!

4 曲終: goコマンドでmain.goを実行

goファイルを実行する方法1: 簡単に実行

1
go run main.go

goファイルを実行する方法2: buildしてから実行

1
2
3
go build
# build完之后会生成 项目名.exe ファイル
demo.exe


本站总访问量