Edited at

Go言語でshebang

More than 5 years have passed since last update.

Go言語はコンパイル言語ですが、シェバングも書くことができます。

コメントアウトに#という文字をサポートしていないため、

独特な形になりますが、

以下の行をmain packageが書かれたソースファイルの先頭に書くだけで

PythonやRubyみたいなスクリプト言語を実行する感覚で動かせます。


shebang

//usr/bin/env go run $0 $@ ; exit


$ vim hello.go

$ chmod +x hello.go
$ cat hello.go


hello.go

//usr/bin/env go run $0 $@ ; exit

package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}


$ time ./hello.go 

hello, world

real 0m0.175s
user 0m0.136s
sys 0m0.033s

シェバングを付けていてもコンパイルできます。

$ go build hello.go 

$ time ./hello
hello, world

real 0m0.008s
user 0m0.004s
sys 0m0.004s

やはりGo言語はコンパイルした方が早いですね。