チュートリアルの翻訳、5回目です。
前回までの訳はチュートリアル[日本語訳]にまとめてありますのでごらんください。
定数について
Go言語の整数(int)型には多くのサイズが用意されていますが、整数の定数は一種類だけです。0LLや0x0ULといった定数は使えません。
その代わり整数の定数は大きな桁数の精度を持っているとして扱われ、その値より小さい精度の変数へ代入しようとしたときだけオーバーフローを起こします。
const hardEight = (1 << 100) >> 97 // これは正しいです
言語仕様(language specification)を参照してもらうのが一番良いのですが、実例はここにも少しあります。
var a uint64 = 0 // aはuint64型で値は0 a := uint64(0) // 上と等価、変換(conversion)を使用 i := 0x1234 // iはデフォルトのint型 var j int = 1e6 // 正しい(1000000 はintで表現可能) x := 1.5 // float型 i3div2 := 3/2 // 整数の割り算。値は1 f3div2 := 3./2. // 浮動小数点の割り算。値は1.5
変換(conversion)は整数または浮動小数点に対し、符号やサイズを変換するような単純なケースにだけ使用できます。
数値を変数に代入するとき、具体的なサイズや型を持つ場合を除いては何ら自動変換は行われません。
Comments