LoginSignup
15
8

More than 5 years have passed since last update.

Go言語 プリミティブ型と型宣言

Last updated at Posted at 2018-08-23

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です。
15
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8