Go言語のプリミティブ型
大別すると以下がある。
- 真偽値型
- 数値型
- 文字列型
真偽値型
型名 | 説明 |
---|---|
bool | 真(true)または偽(false) |
数値型
数値型は以下に分けられる。
符号なし整数
型名 | 説明 | 範囲 |
---|---|---|
uint8 | 8ビット符号なし整数 | 0 ~ 255 |
uint16 | 16ビット符号なし整数 | 0 ~ 65535 |
uint32 | 32ビット符号なし整数 | 0 ~ 4294967295 |
uint64 | 64ビット符号なし整数 | 0 ~ 18446744073709551615 |
uint | 32ビットまたは64ビットの符号なし整数 (環境依存) |
0 ~ 18446744073709551615 or 0 ~ 4294967295 |
uintptr | ポインタの値 | (環境依存) |
byte | uint8のエイリアス | 0 ~ 255 |
符号付き整数
型名 | 説明 | 範囲 |
---|---|---|
int8 | 8ビット符号付き整数 | -128 ~ 127 |
int16 | 16ビット符号付き整数 | -32768 ~ 32767 |
int32 | 32ビット符号付き整数 | -2147483648 ~ 2147483647 |
int64 | 64ビット符号付き整数 | -9223372036854775808 ~ 9223372036854775807 |
int | 32ビットまたは64ビットの符号付き整数 (環境依存) |
-2147483648 ~ 2147483647 or -9223372036854775808 ~ 9223372036854775807 |
rune | int32のエイリアス | -2147483648 ~ 2147483647 |
浮動小数点
型名 | 説明 |
---|---|
float32 | 32ビット浮動小数点 |
float64 | 64ビット浮動小数点 |
こっちはfloatだけっていうのはないのね。
複素数
型名 | 説明 |
---|---|
complex64 | 実数部・虚数部をfloat32で表現する複素数 |
complex128 | 実数部・虚数部をfloat64で表現する複素数 |
文字列型
型名 | 説明 |
---|---|
string | 文字列 ダブルクオートで囲む |
型宣言
Go言語はtypeを使うことで新たな型を宣言できるようです。
package main
import "fmt"
type weight int
func main() {
var todayWeight weight = 50
fmt.Printf("今日の体重%dkg\n", todayWeight)
}
typeを使うことによってプログラムの可読性が向上するとか。
package main
import "fmt"
// 身長と体重
type Status struct {
height float32
weight float32
}
type StatusInfo func(Status) string
func main() {
var status Status
var statusInfo StatusInfo
// 身長と体重を入力
status.height = 1.7
status.weight = 70
// BMIを表示
statusInfo = getBMI
fmt.Println(statusInfo(status))
// 理想体重を表示
statusInfo = IdealWeight
fmt.Println(statusInfo(status))
}
func getBMI(s Status) string {
return fmt.Sprintf("BMIは%.1fです。", s.weight / (s.height * s.height))
}
func IdealWeight(s Status) string {
return fmt.Sprintf("理想体重は%.1fkgです。", (s.height * s.height) * 22)
}
実行結果
BMIは24.2です。
理想体重は63.6kgです。