Goの勉強 基本データ型

Goの勉強をやり始めたのでメモ。
プログラミング言語 Go」を読んでる。

整数

  • Goの整数には符号付き、符号なしがある。
  • runeint32 の同類語で、 byteint8 の同類語
    • runeUnicodeのコードポイントであることを強調し、 byte は生データであることを強調する。
  • uintptr はポインタの値のすべてのビットを保持する。

浮動小数点数

  • ゼロ除算の結果は NaN になる。
  • NaN == NaNfalse になる。

複素数

仕事では使わなさそう。

ブーリアン

JSのような以下のコードは書けない。

fmt.Print(1 || 0)  
// invalid operation: operator || not defined on 1 (untyped int constant)  
// JSの場合は 1 が返る  

文字列

  • 文字列はスライスのようにアクセスできるが、何バイト目であるかであって何文字目かではない。
  • 文字列連結は + を使う。(どこかの言語のように . で繋げない)
  • "s" は文字列リテラルで、エスケープシーケンスが使える。
  • `s` は生文字リテラルで、エスケープシーケンスが使えない。

定数

  • 定数はコンパイル時に評価できる値
  • const宣言では iota が使える。 iota はゼロから始まり、順番に個々の項目ごとに1増加する。