...

パッケージ builtin

import "builtin"
概要
目次

概要 ▾

builtin パッケージは,Go の予約語の説明をします。 ここに書かれている項目は実際に builtin パッケージ中にあるのではなく, 言語特有の識別子を godoc で表示するためにあります。

定数

true と false は型付けされていない真偽値です。

const (
    true  = 0 == 0 // 型付けされていない真偽値
    false = 0 != 0 // 型付けされていない真偽値
)

iota は,const 定義の際に用いる型なしの整数を表す予約語です。 0 から始まり,1 ずつ増えていきます。 大抵の場合,const 定義部分はカッコで括ります。

const iota = 0 // 型なし int

変数

nil はポインタ,チャンネル,関数,インターフェース,マップ,スライス型のゼロ値を表します。

var nil Type // Type は,ポインタ,チャンネル,関数,インターフェース,マップ,スライスのいずれかでなければなりません。

func append

func append(slice []Type, elems ...Type) []Type

ビルトイン関数 append は,スライスの後尾に要素を追加します。 十分な容量がある場合,新たな要素を格納するため再スライスされます。 十分な容量がない場合,新たな配列が割り当てられます。 append 関数は更新されたスライスを返します。そのため,append の返り値を保存する必要があります。 たいていの場合,スライスを保持している変数自身に返り値を格納します。

slice = append(slice, elem1, elem2)
slice = append(slice, anotherSlice...)

特別な場合として,バイトスライスに文字列を追加できます。

slice = append([]byte("hello "), "world"...)

func cap

func cap(v Type) int

ビルトイン関数 cap は,v の容量を返します。型ごとに次の値を返します。

配列: v の要素数 (len(v) と同じです)
配列へのポインタ: *v の要素数 (len(v) と同じです)
スライス: 再スライス可能な最大のスライスの長さ
v が nil の場合, cap(v) は 0 となります。
チャンネル: チャンネルのバッファ容量
v が nil の場合, cap(v) は 0 となります。

単純な配列の場合等,引数によっては返り値が定数となります。 詳細は,Go の言語仕様の "Length and capacity" セクションをご覧ください。

func close

func close(c chan<- Type)

ビルトイン関数 close は双方向あるいは送信専用チャンネルを閉じます。 送信側で実行します。受信側で実行することはありません。 最後の送信値を受信した後にチャンネルは閉じられます。 閉じられたチャンネル c から最後の値を受信した後は, c からの受信はすべて,ブロックされることなく成功し, チャンネルの要素のゼロ値を返します。 閉じられたチャンネル c に対して,以下の ok は false となります。

x, ok := <-c

func complex

func complex(r, i FloatType) ComplexType

ビルトイン関数 complex は,2 つの浮動小数型から複素数値を作ります。 実数部と虚数部は同じサイズでなければなりません。 つまり,どちらとも float32 か float64 (あるいは,代入可能) でなければなりません。 返り値は対応する複素数型となります。 (float32 の場合は complex64,float64 の場合は complex128)

func copy

func copy(dst, src []Type) int

ビルトイン関数 copy は,ひとつのスライスからもうひとつのスライスへ要素をコピーします。 (特別な場合として,文字列からバイトスライスへコピーします。) これら二つのスライスは重なっていてもかまいません。 copy 関数はコピーされた要素数を返します。 len(src) と len(dst) のうち小さい方の値となります。

func delete

func delete(m map[Type]Type1, key Type)

ビルトイン関数 delete は,map からキー key の要素を取り除きます。 m が nil あるいは,key の要素が存在しない場合, 何も変化しません。

func imag

func imag(c ComplexType) FloatType

ビルトイン関数 imag は複素数の虚数部を返します。 返り値の浮動小数型は c の型に対応します。

func len

func len(v Type) int

ビルトイン関数 len は,v の長さを返します。型ごとに次の値を返します。

配列: v の要素数
配列へのポインタ: *v の要素数 (v は nil でもよい)
スライスまたはマップ: v の要素数。v が nil の場合, len(v) は 0 となります。
文字列: v のバイト数
チャンネル: チャンネルバッファ中の,まだ処理されていない(読み込まれていない)要素数。
         v が nil の場合, len(v) は 0 となります。

文字列定数や単純な配列の場合等,引数によっては返り値が定数となります。 詳細は,Go の言語仕様の "Length and capacity" セクションをご覧ください。

func make

func make(t Type, size ...IntegerType) Type

ビルトイン関数 make は,スライス,マップ,チャンネル型でのみ使われ,メモリを割り当てて初期化します。 new と同様,最初の引数は型です。値ではありません。 new とは異なり,make の返り値はポインタではなく,引数と同じ型です。 型ごとに以下が返り値となります。

スライス: size で長さを指定します。スライスの容量は長さと等しくなります。
異なる容量を指定する場合は,2 番目の整数引数を用いて指定します。
長さより小さい値を指定することはできません。
例えば, make([]int, 0, 10) は内部にサイズ
10 の配列を作り,その配列を内部に持つ長さ
0 で容量 10 のスライスを返します。
マップ: 指定された要素数を保持可能なスペースを持つ空のマップが割り当てられます。
サイズは省略可能で,その場合は
小さなサイズが割り当てられます。
チャンネル: チャンネルは指定されたバッファ容量を持つように初期化されます。
0 あるいは サイズを省略した場合,
バッファを持たないチャンネルとなります。

func new

func new(Type) *Type

ビルトイン関数 new はメモリを割り当てます。引数は型であり,値ではありません。 返り値は,新たに割り当てられたその型のゼロ値へのポインタです。

func panic

func panic(v interface{})

ビルトイン関数 panic は,現在のゴルーチンの正常実行を停止します。 関数 F が panic を呼ぶと,すぐに F の正常実行を停止します。 F で遅延された関数は通常通りに実行されます。 その後, F は呼び出し元に帰ります。 呼び出し元 G にとって,F の呼び出しは panic を呼び出したのと同様に振る舞い,G の実行を停止し, 遅延された関数を実行します。 実行中のゴルーチンのすべての関数が停止するまで,これが逆順に実行されます。 その時点でプログラムはゼロでない終了コードで停止します。 この停止シーケンスはパニックと呼ばれ,ビルトイン関数 recover で制御可能です。

func print

func print(args ...Type)

ビルトイン関数 print は,引数を実装特有の方法でフォーマットし, 標準エラーに書き出します。 print は初期開発やデバッグに有用です。 将来言語から取り除かれる可能性があります。

func println

func println(args ...Type)

ビルトイン関数 println は,引数を実装特有の方法でフォーマットし, 標準エラーに書き出します。 引数の間には空白が挿入され,改行が追加されます。 println は初期開発やデバッグに有用です。 将来言語から取り除かれる可能性があります。

func real

func real(c ComplexType) FloatType

ビルトイン関数 real は複素数の実数部を返します。 返り値の浮動小数型は c の型に対応します。

func recover

func recover() interface{}

ビルトイン関数 recover を使えば,パニックしているゴルーチンの振る舞いを制御できます。 遅延関数の中で recover を呼び出すことにより, パニックシーケンスを止め,正常実行に戻し,panic に渡されたエラー値を取得できます。 recover が遅延関数以外で呼び出された場合, パニックシーケンスは止まりません。この場合,あるいはゴルーチンがパニックしていない場合, あるいは panic に渡された引数が nil の場合, recover は nil を返します。 それで,recover の返り値によって, ゴルーチンがパニックしているかどうかを判断できます。

type ComplexType

FloatType はドキュメント作成のための型で, complex64 あるいは complex128 である複素数型を表します。

type ComplexType complex64

type FloatType

FloatType はドキュメント作成のための型で, float32 あるいは float64 である浮動小数型を表します。

type FloatType float32

type IntegerType

IntegerType はドキュメント作成のための型で, int, uint, int8 等の整数型を表します。

type IntegerType int

type Type

Type はドキュメント作成のための型で, Go のどの型も表します。 関数での表記においては,同じ型を表します。

type Type int

type Type1

Type1 はドキュメント作成のための型で, Go のどの型も表します。 関数での表記においては,同じ型を表します。

type Type1 int

type bool

bool は真偽値 true と false の集合です。

type bool bool

type byte

byte は uint8 の別名で, uint8 とすべての点で等価です。 慣用的に,バイト値と 8 ビット符号無し整数値とを 区別するために用います。

type byte = uint8

type complex128

complex138 は,float64 の実部と虚部を持つ 複素数の集合です。

type complex128 complex128

type complex64

complex64 は,float32 の実部と虚部を持つ 複素数の集合です。

type complex64 complex64

type error

ビルトインインターフェース error は,エラー状態を表す慣例のインターフェースです。 値が nil ならば,エラーがないことを表します。

type error interface {
    Error() string
}

type float32

float32 は,IEEE-754 32 ビット浮動点小数の集合です。

type float32 float32

type float64

float64 は,IEEE-754 64 ビット浮動点小数の集合です。

type float64 float64

type int

int は,符号付き整数型で,最低 32 ビットの大きさです。 しかし,int32 等の型のエイリアスではなく,別の型です。

type int int

type int16

int16 は符号付き 16 ビット整数の集合です。 範囲: -32768 から 32767.

type int16 int16

type int32

int32 は符号付き 32 ビット整数の集合です。 範囲: -2147483648 から 2147483647.

type int32 int32

type int64

int64 は符号付き 64 ビット整数の集合です。 範囲: -9223372036854775808 から 9223372036854775807.

type int64 int64

type int8

int8 は符号付き 8 ビット整数の集合です。 範囲: -128 から 127.

type int8 int8

type rune

rune は int32 の別名で, int32 とすべての点で等価です。 慣用的に,文字の値と整数値とを区別するために用います。

type rune = int32

type string

string は,8 ビットのバイト列の集合です。 通常,UTF-8 でエンコードされたテキストですが,それに限りません。string は空のこともありますが,nil ではありません。 string 型の値は変更不可能です。

type string string

type uint

uint は,符号無し整数型で,最低 32 ビットの大きさです。 しかし,uint32 等の型の別名ではなく,別の型です。

type uint uint

type uint16

uint16 は符号なし 16 ビット整数の集合です。 範囲: 0 から 65535.

type uint16 uint16

type uint32

uint32 は符号なし 32 ビット整数の集合です。 範囲: 0 から 4294967295.

type uint32 uint32

type uint64

uint64 は符号なし 64 ビット整数の集合です。 範囲: 0 から 18446744073709551615.

type uint64 uint64

type uint8

uint8 は符号なし 8 ビット整数の集合です。 範囲: 0 から 255.

type uint8 uint8

type uintptr

uintptr は整数型で, 任意のポインタのビットパターンを保持するのに十分の大きさがあります。

type uintptr uintptr