Yuri’s Tech Note

技術系アウトプット

A Tour of Go vol.2

variable

goの変数宣言のステートメントは "var"

またはvarを省略して下記のような書き方もできる

k := 3

types

論理値型(ゼロ値:false)
・bool

文字列型(ゼロ値:"")
・string

数値型(ゼロ値:0)
・unit
・uint8 符号なし 8-ビット 整数 (0 to 255)
・uint16 符号なし 16-ビット 整数 (0 to 65535)
・uint32 符号なし 32-ビット 整数 (0 to 4294967295)
・uint64 符号なし 64-ビット 整数 (0 to 18446744073709551615)


・int
・int8 符号あり 8-ビット 整数 (-128 to 127)
・int16 符号あり 16-ビット 整数 (-32768 to 32767)
・int32 符号あり 32-ビット 整数 (-2147483648 to 2147483647)
・int64 符号あり 64-ビット 整数 (-9223372036854775808 to 9223372036854775807)


・float32 IEEE-754 32-ビット 浮動小数
・float64 IEEE-754 64-ビット 浮動小数


・complex64 float32の実数部と虚数部を持つ複素数
・complex128 float64の実数部と虚数部を持つ複素数


・byte uint8の別名(エイリアス)
rune int32の別名(エイリアス)

使い分け方は記事によってはuintを使えと書かれていたり、整数は基本intだ!などバラバラです。
自社のコードでは整数ではInt64, 浮動小数ではflat64を使っていたのであわせます。

Type conversions

型変換を行う際は新しい変数を用意し、その変数に変換する先の型を宣言する。

var x, y int = 3, 4
var f float64 = math.Sqrt(float64(x*x + y*y))
var z uint = uint(f)

int -> float64 -> uint

goでは型を明示しない場合は型推論が行われる。

Constants

constは":="を使った宣言はできない。