言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. Go辞典
  3. 基本データ型

基本データ型

Goには整数・浮動小数点数・文字列・論理値などの基本データ型があります。型ごとにサイズや用途が明確に定義されています。

構文一覧

概要
int / int8 / int16 / int32 / int64符号付き整数型です。『int』はプラットフォームに依存し、64ビット環境では64ビットになります。
uint / uint8 / uint16 / uint32 / uint64符号なし整数型です。負の値を持てない代わりに、正の範囲が2倍になります。
float32 / float64浮動小数点数型です。通常は精度の高い『float64』を使用します。
complex64 / complex128複素数型です。実部と虚部を持ちます。
string文字列型です。UTF-8でエンコードされたバイト列です。イミュータブル(変更不可)です。
bool論理値型です。『true』または『false』の値を持ちます。
byte『uint8』の別名です。バイトデータを扱うときに使います。
rune『int32』の別名です。Unicodeコードポイント(1文字)を表します。

サンプルコード

sample_basic_types.go
package main

import "fmt"

func main() {
	// 整数型
	var age int = 25
	var score int64 = 9876543210

	// 浮動小数点数型
	var price float64 = 1980.5
	var ratio float32 = 3.14

	// 文字列型
	var name string = "Itadori Yuji"
	greeting := "こんにちは、" + name + "さん"

	// 論理値型
	var isActive bool = true

	// byte と rune
	var b byte = 'A' // ASCIIコード 65
	var r rune = '日' // Unicodeコードポイント

	fmt.Println(age, score)
	fmt.Printf("%.1f / %.2f\n", price, ratio)
	fmt.Println(greeting)
	fmt.Println(isActive)
	fmt.Printf("byte: %d, rune: %d\n", b, r)

	// 文字列の長さ(バイト数)と文字数
	s := "日本語"
	fmt.Println(len(s)) // バイト数: 9
	fmt.Println(len([]rune(s))) // 文字数: 3
}
go run basic_types.go
25 9876543210
1980.5 / 3.14
こんにちは、Itadori Yujiさん
true
byte: 65, rune: 26085
9
3

概要

Goの整数型はサイズを明示するものと、プラットフォーム依存の『int』があります。一般的には『int』で十分ですが、バイナリ操作や外部APIとのやり取りでは明示的なサイズを指定することが重要です。

『string』はバイト列であるため、日本語などのマルチバイト文字では『len()』がバイト数を返します。文字数を正確に扱うには『[]rune(s)』に変換してから操作してください。

型の変換(キャスト)は暗黙的に行われないため、異なる型同士の演算は型変換が必要です。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。