Go中的資料類型
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。bool
byte
rune
int/uint
int8/uint8
int16/uint16
int32/uint32
int64/int64
Pointer
chan 通道
func 函數
interface 介面
map 字典
struct 結構
nil 空值
type 用於自己定義資料類型
const 常量或者常量運算式
type MyString [3]string
MyString 是一個元素個數為3的數群組類型
聲明一個為Person的自訂結構體
type Person struct{
Name string
Age uint8
Address string
}
定義一個結構體
Person{Name:"ysd",Age:21,Address:"sichuan.china"}
Arrary 數組
類型標記法,不是參考型別
[n]T
[2*3*4]byte
[3]string{"ysd","sichuan","guangyuan"} // 長度為3.
一個數組即是一個值.所以在傳遞陣列變數時,傳遞的是整個數組
如果是一個指標,則我們就需要取地址符號
Slice 切片
len([string{10:"ysd"}])
該值得運算式是11, len可以求數組的長度
cap可以求出容量,
建立方式
slice1 := make([]string, 長度,容量)
slice := array[起始:結束] ,將數組array的前四個元素,作為新的切片類型
注意,包含起始,不包含結束,不能超過當前的長度
向切片中追加新的值
slice1 = append(slice1,"c++","php");
append的實現和c++的vector容器一致
copy可以拷貝一個切片
n1 := copy(sliceA,sliceB)
n1代表的是複製了的元素的數量
Map 字典
類型表示,該類型是參考型別
map[K]T
需要注意的是它的鍵類型不能是函數類型,字典類型,和切片類型
map[string]bool類型的表示方法
map[string]bool{"vim":true,"ysd":false}
空類型的表示方法
map[string]bool{}
複合類型的字面值由 {}括起來的符合元素的列表組成
接收操作符
注意事項
從一個通道類型的空值接受值的運算式將永遠阻塞
從一個已經關閉的通道類型值接收值會永遠成功,並立即返回一個其元素的零值.
example
editor := map[string]bool{}
刪除:
delete(editor,"gedit")
= 和:= 的區別
=用於將一個值賦值給一個已經被聲明的常量或者是變數
:= 用於在聲明一個變數的同時並且對該變數進行賦值
go語言注意事項,在GO語言中沒有值傳遞和引用傳遞,有的是實值型別和參考型別
go語言中的類型標記法
name string
func search(name string,age int)(result int)
result 在該函數被調用的時候會賦值給0值
func Model(x,y int)(result int){
result = x%y
return
}