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 になります。
型の異なる演算
整数と浮動小数点数を混ぜて計算することはできない。
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