Go 类型
今天來學(xué)習(xí)一下Go語言的類型
下面來介紹一下Go語言的基本類型
布爾類型:bool eg: var isOk bool ;isOk=true ? isOk:=(1==2)
整形:int8 byte int16,int ,uint,initptr 等`注意:int 和int32是兩種不同的類型,需要手動轉(zhuǎn)換 v:=12 v默認(rèn)推到為int類型 value2 = int32(value1)dd默認(rèn)d
浮點(diǎn)型:float32 =>float ,float64 ?=>double?
復(fù)數(shù)類型 :complex64,complex128 ?
復(fù)數(shù)實(shí)際上由兩個實(shí)數(shù)(在計算機(jī)中用浮點(diǎn)數(shù)表示)構(gòu)成,一個表示實(shí)部(real),一個表示虛部(imag) ?value1 = 3.2 + 12i?
字符串類型:string ?注意:每個中文字符在UTF-8中占3個字節(jié)
字符類型 :rune
錯誤類型:error
下面是Go語言中的復(fù)合類型
指針:pointer
數(shù)組:array ?eg:var intArray [10]int; ??1000]*float64 指針數(shù)組?
注意1:在GO語言中數(shù)組是一個值類型,每傳遞一個數(shù)組都是對該數(shù)組的一個copy;
注意2:數(shù)組一旦定義,他的長度就不可改變
切片:slice
a: 數(shù)組切片的創(chuàng)建
1:基于數(shù)組
var myArray [10]int={1,2,2,3,4,5,6}
var mySlice []int= myArray[:5] -->代表從0個元素開始,數(shù)到第五個元素 ?1,2,2,3,4
2:直接創(chuàng)建
mySlice1 := make([]int, 5) ? 創(chuàng)建一個元素個數(shù)為5的切片,元素初始值為0:
mySlice1 := make([]int, 5,10) ? 創(chuàng)建一個元素個數(shù)為5,元素初始值為0,容量為10的數(shù)組切片
mySlice3 := []int{1, 2, 3, 4, 5} ? 直接創(chuàng)建并且初始化
? b:元素遍歷
1:for(i:=0;i<len(array);i++){
fmt.Print("第"+i+"個數(shù)組元素值:"+array[i])
}
2:for k,v:=range array{
fmt.Print("第"+k+"個數(shù)組元素值:"+v)
}
c:動態(tài)增減元素
?mySlice:=make([]int,5,10){1,2,3,4,5}
添加:mySlice.append(mySlice,7,8,9)
d:基于數(shù)組切片創(chuàng)建數(shù)組切片
mySlice:=make([]int,5,10){1,2,3,4,5}
mySlice2:=mySlice[1,4]
e:內(nèi)容復(fù)制
slice1 := []int{1, 2, 3, 4, 5}
slice2 := []int{5, 4, 3}
copy(slice2, slice1) // 只會復(fù)制slice1的前3個元素到slice2中
copy(slice1, slice2) // 只會復(fù)制slice2的3個元素到slice1的前3個位置
字典:map
a:變量的聲明
var myMap map[string] string
b:初始化
myMap=make(map[string] string)
myMap=make(map[string] string,100) ?//添加了容量
c:賦值
myMap["key"]="我的第一個map"
d:元素的刪除
delete(myMap,"key")
e:元素的查找
value, ok := myMap["1234"]
if ok { // 找到了
// 處理找到的value
}
通道:chan
結(jié)構(gòu)體:struct
接口:interface
?
關(guān)于通道 、結(jié)構(gòu)體和接口涉及到Go的高級應(yīng)用了,后續(xù)在學(xué)習(xí),今天先到這里了
轉(zhuǎn)載于:https://www.cnblogs.com/dark-liu/p/3669737.html
總結(jié)
- 上一篇: (转)JAVA正则表达式语法大全
- 下一篇: 单例模式的七种写法(转)