🥅
Goの別ファイルのコードを実行する
Overview
別ファイルと別のディレクトリを作成して、配置した関数を実行したい。main.go
全てコードを書くわけにはいかないですからね😅
今回は色々ハマったので、友達のGoのエンジニアに教えてもらいながら、別ファイルの関数をmain.go
で実行するのをやってみようと思います。
summary
手順通りにやっていけばうまくいくはず!
- 環境構築をする
go mod init example/main
- lib.goを作成する
package main
import "fmt"
func LibFunc() {
fmt.Println("これは、lib.goのLibFunc()です。")
}
- main.goを作成する
package main
func main() {
LibFunc()
}
- 実行するときは、main.goとlib.go指定する必要がある
go run main.go lib.go
# 実行結果
これは、lib.goのLibFunc()です。
subディレクトリにlib.goを作成する
- subディレクトリを作成する
mkdir sub
- subディレクトリに移動して、go mod initを実行する
cd sub
go mod init example/sub
- sub/lib.goを作成する
package sub
import (
"fmt"
)
func SubFunc() {
fmt.Println("こんにちわ、世界!")
}
プロジェクト直下のgo.mod
を編集する
module example/main
go 1.20
require (
sub v0.0.0
)
replace (
sub => ./sub
)
- main.goを編集する
package main
import (
"sub"
)
func main() {
sub.SubFunc()
}
- 実行する
go run main.go
# 実行結果
こんにちわ、世界!
thoughts
ネットの記事を参考にしたのですが、main.goを実行するのに使うgo.mod
のファイルを編集する必要がありました!
結構ハマりやすいのでご注意ください!
こちらが完成品になります。参考にしてみてください
Discussion