基礎からわかるGo言語 Chapter01..02 その1
基礎からわかるGo言語を買ったものの、あまり読み進めていなかったのでちゃんと読みつつ記事としても書いて行こうかと。
node.js + Go言語って組み合わせで今後何か作れると良いなあと思いつつ。
Hello, World!
とりあえずHello, World!を。
1.go
package main // comment /* comment comment comment */ // import "fmt" import ( "fmt" ) func main() { fmt.Println("Hello, World!") }
Go言語のソースコードは必ずpackageで始まる。
mainパッケージのmain関数は特別で、エントリポイントの扱いになる。
importは丸括弧で囲んでパッケージ名を書いて改行すると、行ごとにimportを書かなくて良いみたい。
もちろんimportを書きまくってもおーけー。
あと基本的に行末のセミコロンは必要ない。
それと、importしているが使っていないものや、宣言しているが使っていない変数などがあるとコンパイルエラーになる。
goコマンド関連
$ go fmt 1.go
ソースコードを整形してくれる。記法について気にしなくて良いですね。JavaScriptのfixjsstyleみたいな。
$ go run 1.go
スクリプト言語みたく、そのまま実行してくれる。実行ファイルは生成されない。
$ go build 1.go
実行ファイルが生成される。gccでコンパイルしたみたいな感じ。
$ go build -o hello 1.go
とすると、helloという名前で実行ファイルが生成される。
他にもgoコマンドには便利なサブコマンドが沢山!
変数と型
変数の宣言はvarを使う。(ほかの宣言方法もあるけど)
// var 変数名 型名 var flag bool flag = true
数値型。
var i int = 12345 var i64 int64 = int64(i)
文字列型。
var s string s = "あ" s = s + "い" s += "う"
len関数はバイト数を返す。
s1 := "abcdef" s2 := "あいう" fmt.Println("s1:", len(s1)) // s1: 6 fmt.Println("s2:", len(s1)) // s2: 9
内部ではUTF-8で扱っているらしいので、日本語の"あいう"は3バイトずつになり9が返ってくる。
文字数を調べたいときはunicode/utf8パッケージのRuneCountInStringを使う。
package main import ( "fmt" "unicode/utf8" ) func main() { fmt.Println(utf8.RuneCountInString("あいう")) }
今日はこの辺まで。まだまだ先は長そう……