Irohabook
0
3550

Golangの数値(代入、四則演算、割り算の例外、数値型など)

数値の代入

a = 1 は Go で次のように書く。

a := 1

他の言語と違い、イコールの前にコロンをつける。

入力

package main

import "fmt"

func main() {
    a := 1
    fmt.Print(a)
}

出力

1

C 言語のように型を指定したいときは

var a int = 1

と書く。

数値の四則演算

四則演算は他の言語と同じである。

入力

package main

import "fmt"

func main() {
    a := 12
    b := 3
    fmt.Println(a + b)
    fmt.Println(a - b)
    fmt.Println(a * b)
    fmt.Println(a / b)
}

出力

15
9
36
4

割り算のエラー

割られる数が 0 の割り算はエラーになる。

入力

package main

import "fmt"

func main() {
    a := 12
    b := 0
    c := a / b
    fmt.Println(c)
}

出力

panic: runtime error: integer divide by zero

goroutine 1 [running]:
main.main()

割り算の自動切り捨て

整数を整数で割った値が整数でないとき、つまり小数の部分が出るとき、小数部分は無視される。

入力

package main

import "fmt"

func main() {
    a := 12
    b := 5
    c := a / b
    fmt.Println(c)
}

出力

2

数値型

数値型 説明
uint8 整数 (0 - 255)
uint16 整数 (0 - 65535)
uint32 整数 (0 - 4294967295)
uint64 整数 (0 - 18446744073709551615)
int8 整数 (-128 - 127)
int16 整数 (-32768 - 32767)
int32 整数 (-2147483648 - 2147483647)
int64 整数 (-9223372036854775808 - 9223372036854775807)
float32 浮動小数点数
float64 浮動小数点数
complex64 複素数
complex128 複素数

単に int と書くと、その OS に合わせて型が決まる。例えば 64 ビットの OS で int と定義された数は、自動的に int64 になる。

特別な理由がない限り、整数を表現するために int32 と指定するよりも int とあいまいに書いたほうがいい。

型の異なる演算

整数と浮動小数点数を混ぜて計算することはできない。

入力

package main

import "fmt"

func main() {
    a := 1.5
    b := 5
    c := a / b
    fmt.Println(c)
}

出力

# command-line-arguments
./main.go:8:9: invalid operation: a / b (mismatched types float64 and int)

整数を小数のように書くと計算できる。

入力

package main

import "fmt"

func main() {
    a := 1.5
    b := 5.0
    c := a / b
    fmt.Println(c)
}

出力

0.3
次の記事

Go入門