package builtin

import "builtin"

builtin 包为Go的预声明标识符提供了文档。此处列出的条目其实并不在builtin 包中,对它们的描述只是为了让 godoc 给该语言的特殊标识符提供文档。

Index

返回首页


  • Constants
  • type bool
  • type byte
  • type rune
  • type int
  • type int8
  • type int16
  • type int32
  • type int64
  • type uint
  • type uint8
  • type uint16
  • type uint32
  • type uint64
  • type float32
  • type float64
  • type complex64
  • type complex128
  • type uintptr
  • type string
  • type error
  • type Type
  • type Type1
  • type IntegerType
  • type FloatType
  • type ComplexType
  • func real(c ComplexType) FloatType
  • func imag(c ComplexType) FloatType
  • func complex(r, i FloatType) ComplexType
  • func new(Type) *Type
  • func make(Type, size IntegerType) Type
  • func cap(v Type) int
  • func len(v Type) int
  • func append(slice []Type, elems ...Type) []Type
  • func copy(dst, src []Type) int
  • func delete(m map[Type]Type1, key Type)
  • func close(c chan<- Type)
  • func panic(v interface{})
  • func recover() interface{}
  • func print(args ...Type)
  • func println(args ...Type)
  • Constants

    const (
        true  = 0 == 0 // 无类型布尔值
        false = 0 != 0 // 无类型布尔值
    )

    true 和false是两个无类型布尔值。

    const iota = 0 // 无类型整数值
    

    iota是一个预定义的标识符,代表顺序按行增加的无符号整数,每个const声明单元(被括号括起来)相互独立,分别从0开始。

    type bool

    type bool bool

    布尔类型。

    type byte

    type byte byte

    8位无符号整型,是uint8的别名,二者视为同一类型。

    type rune

    type rune rune

    32位有符号整形,int32的别名,二者视为同一类型。

    type int

    type int int

    至少32位的有符号整形,但和int32/rune并非同一类型。

    type int8

    type int8 int8

    8位有符号整形,范围[-128, 127]。

    type int16

    type int16 int16

    16位有符号整形,范围[-32768, 32767]。

    type int32

    type int32 int32

    32位有符号整形,范围[-2147483648, 2147483647]。

    type int64

    type int64 int64

    64位有符号整形,范围[-9223372036854775808, 9223372036854775807]。

    type uint

    type uint uint

    至少32位的无符号整形,但和uint32不是同一类型。

    type uint8

    type uint8 uint8

    8位无符号整型,范围[0, 255]。

    type uint16

    type uint16 uint16

    16位无符号整型,范围[0, 65535]。

    type uint32

    type uint32 uint32

    32位无符号整型,范围[0, 4294967295]。

    type uint64

    type uint64 uint64

    64位无符号整型,范围[0, 18446744073709551615]。

    type float32

    type float32 float32

    所有IEEE-754 32位浮点数的集合,12位有效数字。

    type float64

    type float64 float64

    所有IEEE-754 64位浮点数的集合,16位有效数字。

    type complex64

    type complex64 complex64

    具有float32 类型实部和虚部的复数类型。

    type complex128

    type complex128 complex128

    具有float64 类型实部和虚部的复数类型。

    type uintptr

    type uintptr uintptr

    可以保存任意指针的位模式的整数类型。

    type string

    type string string

    8位byte序列构成的字符串,约定但不必须是utf-8编码的文本。字符串可以为空但不能是nil,其值不可变。

    type error

    type error interface {
        Error() string
    }

    内建error接口类型是约定用于表示错误信息,nil值表示无错误。

    type Type

    type Type int

    在本文档中代表任意一个类型,但同一个声明里只代表同一个类型。

    var nil Type // Type必须是指针、通道、函数、接口、映射或切片
    

    nil是预定义的标识符,代表指针、通道、函数、接口、映射或切片的零值。

    type Type1

    type Type1 int

    在本文档中代表任意一个类型,但同一个声明里只代表同一个类型,用于代表和Type不同的另一类型。

    type IntegerType

    type IntegerType int

    在本文档中代表一个有符号或无符号的整数类型。

    type FloatType

    type FloatType float32

    在本文档中代表一个浮点数类型。

    type ComplexType

    type ComplexType complex64

    在本文档中代表一个复数类型。

    func real

    func real(c ComplexType) FloatType

    返回复数c的实部。

    func imag

    func imag(c ComplexType) FloatType

    返回复数c的虚部。

    func complex

    func complex(r, i FloatType) ComplexType

    使用实部r和虚部i生成一个复数。

    func new

    func new(Type) *Type

    内建函数new分配内存。其第一个实参为类型,而非值。其返回值为指向该类型的新分配的零值的指针。

    func make

    func make(Type, size IntegerType) Type

    内建函数make分配并初始化一个类型为切片、映射、或通道的对象。其第一个实参为类型,而非值。make的返回类型与其参数相同,而非指向它的指针。其具体结果取决于具体的类型:

    切片:size指定了其长度。该切片的容量等于其长度。切片支持第二个整数实参可用来指定不同的容量;
         它必须不小于其长度,因此 make([]int, 0, 10) 会分配一个长度为0,容量为10的切片。
    映射:初始分配的创建取决于size,但产生的映射长度为0。size可以省略,这种情况下就会分配一个
         小的起始大小。
    通道:通道的缓存根据指定的缓存容量初始化。若 size为零或被省略,该信道即为无缓存的。

    func cap

    func cap(v Type) int

    内建函数cap返回 v 的容量,这取决于具体类型:

    数组:v中元素的数量,与 len(v) 相同
    数组指针:*v中元素的数量,与len(v) 相同
    切片:切片的容量(底层数组的长度);若 v为nil,cap(v) 即为零
    信道:按照元素的单元,相应信道缓存的容量;若v为nil,cap(v)即为零
    

    func len

    func len(v Type) int

    内建函数len返回 v 的长度,这取决于具体类型:

    数组:v中元素的数量
    数组指针:*v中元素的数量(v为nil时panic)
    切片、映射:v中元素的数量;若v为nil,len(v)即为零
    字符串:v中字节的数量
    通道:通道缓存中队列(未读取)元素的数量;若v为 nil,len(v)即为零

    func append

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

    内建函数append将元素追加到切片的末尾。若它有足够的容量,其目标就会重新切片以容纳新的元素。否则,就会分配一个新的基本数组。append返回更新后的切片,因此必须存储追加后的结果。

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

    作为特例,可以向一个字节切片append字符串,如下:

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

    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按照指定的键将元素从映射中删除。若m为nil或无此元素,delete不进行操作。

    func close

    func close(c chan<- Type)

    内建函数close关闭信道,该通道必须为双向的或只发送的。它应当只由发送者执行,而不应由接收者执行,其效果是在最后发送的值被接收后停止该通道。在最后的值从已关闭的信道中被接收后,任何对其的接收操作都会无阻塞的成功。对于已关闭的信道,语句:

    x, ok := <-c
    

    还会将ok置为false。

    func panic

    func panic(v interface{})

    内建函数panic停止当前Go程的正常执行。当函数F调用panic时,F的正常执行就会立刻停止。F中defer的所有函数先入后出执行后,F返回给其调用者G。G如同F一样行动,层层返回,直到该Go程中所有函数都按相反的顺序停止执行。之后,程序被终止,而错误情况会被报告,包括引发该恐慌的实参值,此终止序列称为恐慌过程。

    func recover

    func recover() interface{}

    内建函数recover允许程序管理恐慌过程中的Go程。在defer的函数中,执行recover调用会取回传至panic调用的错误值,恢复正常执行,停止恐慌过程。若recover在defer的函数之外被调用,它将不会停止恐慌过程序列。在此情况下,或当该Go程不在恐慌过程中时,或提供给panic的实参为nil时,recover就会返回nil。

    func print

    func print(args ...Type)

    内建函数print以特有的方法格式化参数并将结果写入标准错误,用于自举和调试。

    func println

    func println(args ...Type)

    println类似print,但会在参数输出之间添加空格,输出结束后换行。