数値型

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