LoginSignup
5
1

More than 3 years have passed since last update.

GoのHello Worldで詰まった話

Last updated at Posted at 2019-11-14

はじめに

今更ながら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できていないせいかと疑っていた…
新しい言語を学び始める際、こういった本当しょうもなさすぎるミスが逆に面白い。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1