宣言の仕方
varを使う方法と:=を使う方法があります。
func foo() {
xi := 2
xf64 := 1.8
xs := "test2"
xt, sf := true, false
fmt.Println(xi, xf64, xs, xt, sf)
}
:=で記述すると関数外で宣言する事ができません。
また、必ず値を代入する必要があります。
さらに、代入した値によって、その変数の型が自動的に決められてしまうので、
float64の値を代入するけれども、変数の型としてはfloat32にしたい、といったことはできません。
func main() {
var (
i float64 = 1
f64 = 1.2
s = "test"
t, f = true, false
g bool
)
fmt.Println(i, f64, s, t, f, g)
foo()
}
varで記述すると、値の代入は必ずしも必要ではなく、
数値型の場合、代入した値とは異なる型指定をする事もできます。
宣言時に代入する値と異なる型でなければ、型宣言は不要なようです。
上記main関数内で宣言したiは、int型の値を代入していますが、型はfloat64としています。
また、varを用いた場合、関数の外で宣言する事ができます。
値の変更
宣言した変数に対して値を変更する場合には、
次のように=だけで記述します。
func main() {
var (
i float64 = 1
)
xi := 2
i = 3.4
xi = 1
}
なお、宣言した型に受けつけられない型の値を代入しようとするとエラーになります。
型の調べ方
次のように調べる事ができます。
func main() {
var (
i float64 = 1
)
xi := 2
fmt.Printf("%T\n", i)
fmt.Printf("%T\n", xi)
}
第1引数末尾の\nは改行コードです。Printfでは自動的に改行されません。