Go にはたくさんの数値型がある。
型 | 説明 |
int8 | 8bit整数 |
int16 | 16bit整数 |
int32 | 32bit整数 |
int64 | 64bit整数 |
int | 32bitまたは64bit整数(処理系依存) |
uint8 | 8bit符号なし整数 |
byte | uint8の別名 |
uint16 | 16bit符号なし整数 |
uint32 | 32bit符号なし整数 |
uint64 | 64bit符号なし整数 |
uint | 32bitまたは64bit符号なし整数(処理系依存) |
float32 | 32bit単精度浮動小数点数 |
float64 | 64bit倍精度浮動小数点数 |
complex64 | float32の実数部と虚数部をもつ複素数 |
complex126 | float64の実数部と虚数部をもつ複素数 |
整数は通常10進数だけど、頭に 0 をつけると8進数、0x をつけると16進数と解釈される。
型が異なると計算できない。例えば同じ整数でも int と int64 の計算をしようとすると、次のようにエラーになる。
package main import "fmt" func main() { var a int var b int64 a = 10 b = 20 fmt.Println(a + b) }
^o^ > go run numbers.go # command-line-arguments .\numbers.go:12: invalid operation: a + b (mismatched types int and int64)
こういう場合は明示的に変換しなければならない。
package main import "fmt" func main() { var a int var b int64 a = 10 b = 20 fmt.Println(int64(a) + b) }
^o^ > go run numbers2.go 30