【Go言語】Golangのint型(整数型)について簡単にまとめてみた

変数でint型を使う

Golangにおいてint型の変数を宣言する時はこの形式で記述します。

var 変数名 int = 代入する値

試しにmain.goというファイルを作って、以下のように書いてみます。

package main

import "fmt"

func main() {
  var number int = 1000 //変数numberに1000を代入

  fmt.Println(number) //変数numberを出力
}

出力結果↓(「go run ファイル名」でgoのファイルを実行できます)

1000

Golangのint型で四則演算

int型の変数numberに対して四則演算+剰余算をやってみました。

package main

import "fmt"

func main() {
  var number int = 1000

  fmt.Println(number + 200) //足し算
  fmt.Println(number - 400) //引き算
  fmt.Println(number * 5) //掛け算
  fmt.Println(number / 10) //割り算
  fmt.Println(number % 400) //剰余算
}

出力結果↓

1200  //足し算
600   //引き算
5000  //掛け算
100   //割り算
200   //剰余算

int型の種類(全4種類)

Golangのint型には4つの種類があります。何が違うかというと最小値と最大値がそれぞれ異なります。

  • int8(最小値:-128、最大値:127
  • int16(最小値:-32768、最大値:32767
  • int32(最小値:-2147483648、最大値:2147483647
  • int64(最小値:-9223372036854775808、最大値:9223372036854775807

変数宣言時の型定義でただ単にintと書いた場合、PCの環境に依存することになり16ビットのPCならint16、32ビットのPCならint32と同じになります。

明示的に指定した型と環境依存した型は異なる型として扱う

例)32ビットのPCと仮定して、以下のコードを実行する。int型のnumber1とint32型のnumber2を足す処理。ただし、number1は環境依存によってint32型となっている。

package main

import "fmt"

func main() {
  var number1 int = 1000 //環境依存によってint32となった型
  var number2 int32 = 2000 //明示的にint32と指定した型

  fmt.Println(number1 + number2)
}

出力結果はエラーとなります。

invalid operation: number1 + number2 (mismatched types int and int32)

明示的に指定したint32型と環境依存によって定まったint32型では異なる型として扱われ、同じ数値の値に見えても異なる型同士だと計算できないので注意が必要です。

もちろん、同じ型同士の変数であれば計算することは可能です。

package main

import "fmt"

func main() {
  var number1 int32 = 1000 //明示的にint32と指定
  var number2 int32 = 2000 //明示的にint32と指定

  fmt.Println(number1 + number2)
}

出力結果↓

3000
タイトルとURLをコピーしました