glot.ioという様々な言語のスニペットを実行・保存出来るサービスでGo言語を複数ファイルに分けた状態でコンパイルする方法についてまとめる。
Go言語で複数ファイルに分割する方法自体についての説明は省く。
同パッケージ(main)の場合
ファイル
glot.ioで複数ファイル(main.go、dio.go)を作成した場合、以下のディレクトリ構成になっている。
.
├── dio.go
└── main.go
同パッケージ(main)でコンパイルする場合の例
main.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
PackageTest()
}
dio.go
func PackageTest() {
fmt.Println("dio.go")
}
glot.ioの設定
Gopherのアイコンをクリック
Run Commandのチェックを入れて以下に変更
go run main.go dio.go
Runボタンを押す
別パッケージに分割する
ファイル
dio.goを別パケージとする場合は以下のようなディレクトリ構成になればよい。
.
├── dio
│ └── dio.go
└── main.go
glot.ioの実行はDocker上(Goの場合ubuntuイメージ)で行われており、基本的なコマンド、シェルスクリプトも実行できる。そのため上記のディレクトリ構成でコンパイルするようにスクリプトを書いてあげればよい。
run.sh
# !/bin/bash
mkdir dio
mv dio.go dio
go run main.go
同パッケージ(main、dio)でコンパイルする場合の例
main.go
package main
import (
"fmt"
"./dio"
)
func main() {
fmt.Println("Hello World!")
dio.PackageTest()
}
dio.go
package dio
import (
"fmt"
)
func PackageTest() {
fmt.Println("dio.go")
}
glot.ioの設定
Run Commandを以下の様に変更してRunボタンを押す。
bash ./run.sh