go言語は右から新しい型になる!
go言語では決まった型を指定しないで変数宣言すると右側から型推論します。
どういう事かを解説していきます。
【結論】
var i int
x:= i
x is an int
【理由】
型を指定しないというのは:=やvar =にしてコードを書く事です。
var i int = 65などと記述すると右の65がintと型推論されint型になります。
【具体例】
// 明示的な型を指定せずに変数を宣言する場合( := や var = のいずれか)、変数の型は右側の変数から型推論されます。
// 右側の変数が型を持っている場合、左側の新しい変数は同じ型になります:
①
package main
import (
"fmt"
)
func main() {
v := 42
fmt.Printf("v is of type %\n", v)
}
v is of type %!
(int=42)
v := 42なのでfmt.Printf("v is of type %\n", v)により型が出力されて右から新しい型になるから42はint型なので(int=42)となります。
②
package main
import (
"fmt"
)
func main() {
v := 42.5
fmt.Printf("v is of type %\n", v)
}
v is of type %!
(float64=42.5)
①と同様には浮動小数なのでfloat64と表示されます。
③
package main
import (
"fmt"
)
func main() {
v := 42.5 + 0.8i
fmt.Printf("v is of type %\n", v)
}
v is of type %!
(complex128=(42.5+0.8i))
v := 42.5 + 0.8i はcomplex() で複素数の事です。
④
package main
import (
"fmt"
)
var i = 1
func main() {
fmt.Printf("v is of type %T\n", i)
}
v is of type %!
(int=1)
var i =でも表示できます。
1は整数なのでint=1となります。
【結論】
右が整数ならint型になり、右が浮動小数ならfloatになります。
右の値により新たな変数の型が決まります。
取材やお仕事紹介などはこちらからお気軽にご連絡下さい。
ysa7825@gmail.com