Goの勉強をやり始めたのでメモ。
「プログラミング言語 Go」を読んでる。
整数
- Goの整数には符号付き、符号なしがある。
rune
はint32
の同類語で、byte
はint8
の同類語rune
はUnicodeのコードポイントであることを強調し、byte
は生データであることを強調する。
uintptr
はポインタの値のすべてのビットを保持する。
浮動小数点数
- ゼロ除算の結果は
NaN
になる。 NaN == NaN
はfalse
になる。
複素数
仕事では使わなさそう。
ブーリアン
JSのような以下のコードは書けない。
fmt.Print(1 || 0) // invalid operation: operator || not defined on 1 (untyped int constant) // JSの場合は 1 が返る
文字列
- 文字列はスライスのようにアクセスできるが、何バイト目であるかであって何文字目かではない。
- 文字列連結は
+
を使う。(どこかの言語のように.
で繋げない) "s"
は文字列リテラルで、エスケープシーケンスが使える。`s`
は生文字リテラルで、エスケープシーケンスが使えない。
定数
- 定数はコンパイル時に評価できる値
- const宣言では iota が使える。 iota はゼロから始まり、順番に個々の項目ごとに1増加する。