Go原始碼剖析:內建型別
Go內建型別定義在$GOROOT/src/builtin/builtin.go中,分為內建函式和內建資料型別
-
內建資料型別
-
簡單型別
整型:int,int8,int16,int32,int64 無符號整型:uint,uint8,uint16,uint32,uint64 浮點型:float32,float64 複數:complex64,complex128 byte,rune,iota,uintptr
-
複雜型別
陣列 array 切片 slice 對映 map 管道 chan
-
-
內建函式
-
append()
定義:func append(slice []Type, elems ...Type) []Type
作用:往切片末尾新增新元素,如果切片的容量不夠,會自定建立新切片
用法:
1. slice = append(slice, elem1, elem2)//依次新增多個元素 2. slice = append(slice, anotherSlice...)//批量新增所有元素 3. slice = append([]byte("hello"),"world")//特例,允許字串新增在位元組切片後面
-
copy()
定義;func copy(dst, src []Type) int
作用:把源切片拷貝到目標變數,返回拷貝的元素數量
-
copy()
定義;func copy(dst, src []Type) int
作用:把源切片拷貝到目標變數,返回拷貝的元素數量 -
delete()
定義;func delete(m map[Type]Type1, key Type)
作用:根據key,刪除對映中的一個元素 -
len()
定義;func len(v Type) int
作用:返回陣列,切片,channel的長度 -
cap()
定義;func cap(v Type) int
作用:返回陣列,切片,channel的容量
-
make()
定義;func make(t Type, size ...IntegerType) Type
作用:分配然後初始化指定的(切片,對映,管道),並返回該值 -
new()
定義;func new(Type) *Type
作用:分配指定型別的地址空間,返回指標 -
complex(),real(),imag()
作用:comples()構造一個複數,real()返回實部,imag()返回虛部 -
close()
定義;func close(c chan<- Type)
作用:關閉一個雙向或者send-only的管道,
-
panic(),recover()
定義;
func panic(v interface{}) 作用:終止goroutine執行,並立即呼叫該函式內的defer func recover() interface{} 作用:需要定義在defer裡面
-
print(),println()
作用:列印資訊
-
3.總結
Go語言的內建型別就是以上所有,有任何問題的話可以直接參考原始碼檔案:https://golang.org/src/builtin/builtin.go