Goは静的型付け言語であり、全ての変数は何らかの型に属し、異なる型同士の演算といった問題点の多くはコンパイル時に検出される。
データの基本型一覧
論理値型(bool)
数値型(int)
符号付整数型
int8
int16
int32
int64
符号なし整数型
uint8(byte)
uint16
uint32
uint64
浮動小数点型
float32
float64
複素数型
complex64
complex128
rune型(rune)
※int32と同じ
文字列型(string)
コードでデータ型の出力
以下のコードをファイル「type.go」に書いて、コマンド「go build type.go」でコンパイルする。
type.exeを実行したら、結果を確認します。
package main
import “fmt”
func main() {
var v1 = 123
fmt.Printf(“v1のデータ型:%T\n”, v1)
var v2 int = 123.0
fmt.Printf(“v2のデータ型:%T\n”, v2)
var v3 = 123.0
fmt.Printf(“v3のデータ型:%T\n”, v3)
var v4 float32 = 123.0
fmt.Printf(“v4のデータ型:%T\n”, v4)
var v5 = “漢字”
fmt.Printf(“v5のデータ型:%T\n”, v5)
var v6 = ‘漢’
fmt.Printf(“v6のデータ型:%T,v6の値:%d\n”, v6, v6)
fmt.Printf(“v6の文字:%c\n”, v6)
fmt.Printf(“20431の文字:%c\n”, 28450)
var v7 = (111==(110+1))
fmt.Printf(“v7のデータ型:%T,値:%v\n”, v7, v7)
var v8 = (‘漢’==28450)
fmt.Printf(“v8のデータ型:%T,値:%v\n”, v8, v8)
}
import “fmt”
func main() {
var v1 = 123
fmt.Printf(“v1のデータ型:%T\n”, v1)
var v2 int = 123.0
fmt.Printf(“v2のデータ型:%T\n”, v2)
var v3 = 123.0
fmt.Printf(“v3のデータ型:%T\n”, v3)
var v4 float32 = 123.0
fmt.Printf(“v4のデータ型:%T\n”, v4)
var v5 = “漢字”
fmt.Printf(“v5のデータ型:%T\n”, v5)
var v6 = ‘漢’
fmt.Printf(“v6のデータ型:%T,v6の値:%d\n”, v6, v6)
fmt.Printf(“v6の文字:%c\n”, v6)
fmt.Printf(“20431の文字:%c\n”, 28450)
var v7 = (111==(110+1))
fmt.Printf(“v7のデータ型:%T,値:%v\n”, v7, v7)
var v8 = (‘漢’==28450)
fmt.Printf(“v8のデータ型:%T,値:%v\n”, v8, v8)
}
以下の結果が出る。
v1のデータ型:int
v2のデータ型:int
v3のデータ型:float64
v4のデータ型:float32
v5のデータ型:string
v6のデータ型:int32,v6の値:28450
v6の文字:漢
20431の文字:漢
v7のデータ型:bool,値:true
v8のデータ型:bool,値:true
v2のデータ型:int
v3のデータ型:float64
v4のデータ型:float32
v5のデータ型:string
v6のデータ型:int32,v6の値:28450
v6の文字:漢
20431の文字:漢
v7のデータ型:bool,値:true
v8のデータ型:bool,値:true