Skip to Content

入門Goプログラミング Lesson7(整数)から学んだこと

LESSON7 整数

整数の変数を宣言

すべて同じこと書いてある

ポイント
右辺の値を見てintを推論できるので、推奨は省略して書く

year := 2019  // 推奨の書き方
var year = 2019
var year int = 2019

正の数だけ扱える整数型

unsigned integer で uint

var year unit = 2019

[疑問] intと、uintは何ビット?

ターゲットのアーキテクチャに依存して最適なものが選ばれる
古い32ビット環境だと、int32, uint32と同じ
最近の64ビット環境だと、int64, uint64と同じ

変数の型を調べる

intはint型であって、int64とは表示されない

memo
%[1] 1個目の引数を使うことができる

package main

import (
	"fmt"
)

func main() {
	year := 2019
	var month uint = 12

	fmt.Printf("%T型: %v\n", year, year) // 下と同じ
	fmt.Printf("%T型: %[1]v\n", year) // [1]は1個目の引数を使うので、2度同じ変数を書かなくて済む
	fmt.Printf("%T型: %[1]v\n", month)
}

実行結果

int型: 2019
int型: 2019
uint型: 12

整数のラップアラウンド

ビットで桁があふれると、ファミコンのバグのようになる

memo
%b 2進数表示
08 0で8桁になるようにパディングする

package main

import (
	"fmt"
)

func main() {
	var power uint8 = 255
	fmt.Printf("%08b\n", power)
	power++
	fmt.Printf("%08b\n", power)
}

実行結果

11111111
00000000

感想

くにおくんの熱血格闘伝説をやりたくなった

参考

なし