go run

カテゴリー: 学習  閲覧数:308 配信日:2018-05-01 23:11


goファイル確認


$ cd src/
$ ls -l
合計 1980
drwxrwxr-x 3 ★★ ★★      39  5月  1 09:15 20180501
-rwxrwxr-x 1 ★★ ★★ 2020012  4月 25 11:14 hello
-rw-rw-r-- 1 ★★ ★★      77  4月 25 11:11 hello.go

$ cd 20180501/
$ ls -l

合計 2060
drwxrwxr-x 2 ★★ ★★      17  5月  1 09:20 b
-rwxrwxr-x 1 ★★ ★★ 2105323  5月  1 09:15 main
-rw-rw-r-- 1 ★★ ★★     120  5月  1 09:11 main.go

$ ./main
2018/05/01 23:13:01 Hello func a
2018/05/01 23:13:01 Hello func b


go run


自動的にコンパイル・実行するコマンド
・「go run hoge.go」でプログラム実行することができるが、go buildのようにカレントディレクトリ以下の全ファイルを読み込むわけではない
$ go run main.go
2018/05/01 23:13:27 Hello func a
2018/05/01 23:13:27 Hello func b15


ビルド対象から外す


$ vi b/b.go
// +build ignore

package b

import "log"

func B() {
   log.Print("Hello func b15")
}


$ go build
main.go:3:8: local import "./b" in non-local package
ダメじゃん!
・buildせず import出来るのかと思ったよ

go buildにはC言語のようにファイルごとにオブジェクトを作成しておいて、変更があったファイルのみ差分コンパイルする仕組みがありません。
つまりGoは必ず1つのパッケージ内では複数ファイルを同時にコンパイルして、ライブラリを作成するまでが仕様になっています。

・何れにしてもコンパイルは必要みたい

Go Binary Hacks - go buildせずにビルドする #golang
GoのBuild Constraintsに関するメモ


・あー、もー、分からない
・もういいわ
・goファイル内容変更する度、「go build」して、CentOS7サービスヘ登録した内容を再起動すればいいんやろ
・超面倒くさいわ。Go!



GOPATHについて - はじめてのGo言語