はじめに
今更ながらgolangに手を出してみることに。
本当にしょうもないミスで詰まったけれど、ググっても答えがパッと見当たらなかったので備忘として残しておきます。
(あまりにもしょうがないミスすぎるせい)
Goのインストール
https://golang.org/
から、Macなのでpkgでインストール
早速Hello World
hello.goファイルを作って
hello.go
package main
import "fmt"
func main() {
fmt.println('hello world')
}
$ go run hello.go
./hello.go:5:3: cannot refer to unexported name fmt.println
./hello.go:5:3: undefined: fmt.println
./hello.go:5:15: invalid character literal (more than one character)
たった1行Hello World表示するだけなのに、ミスを2個も犯していましたとさ。
答え
hello.go
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
1点目:fmt.Println
「Goにおいて1文字目が大文字か小文字かは重要。大文字はパッケージの外から使えるよ」
と解説があったにも関わらず、すっぽ抜けていた…
2点目:"hello world"
Goにおいて文字列はダブルクオートで括る必要がある。
普段PHPerなので、変数展開不要な文字列はシングルクオートで括る癖が。
結論
サンプルコードは忠実に打ち込みましょう。
エラーメッセージはよく読みましょう。
ということですね。
言い訳すると、fmt.printlnのエラーに関してはそもそもfmtがうまくimportできていないせいかと疑っていた…
新しい言語を学び始める際、こういった本当しょうもなさすぎるミスが逆に面白い。