🥅

Goの別ファイルのコードを実行する

2023/11/28に公開1

Overview

別ファイルと別のディレクトリを作成して、配置した関数を実行したい。main.go全てコードを書くわけにはいかないですからね😅

今回は色々ハマったので、友達のGoのエンジニアに教えてもらいながら、別ファイルの関数をmain.goで実行するのをやってみようと思います。

summary

手順通りにやっていけばうまくいくはず!

  1. 環境構築をする
go mod init example/main
  1. lib.goを作成する
package main

import "fmt"

func LibFunc() {
  fmt.Println("これは、lib.goのLibFunc()です。")
}
  1. main.goを作成する
package main

func main() {
 LibFunc()
}
  1. 実行するときは、main.goとlib.go指定する必要がある
go run main.go lib.go
# 実行結果
これは、lib.goのLibFunc()です。

subディレクトリにlib.goを作成する

  1. subディレクトリを作成する
mkdir sub
  1. subディレクトリに移動して、go mod initを実行する
cd sub
go mod init example/sub
  1. 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
)
  1. main.goを編集する
package main

import (
	"sub"
)

func main() {
	sub.SubFunc()
}
  1. 実行する
go run main.go
# 実行結果
こんにちわ、世界!

thoughts

ネットの記事を参考にしたのですが、main.goを実行するのに使うgo.modのファイルを編集する必要がありました!
結構ハマりやすいのでご注意ください!

こちらが完成品になります。参考にしてみてください
https://github.com/sakurakotubaki/GoModules

Jboy王国メディア