今天来学习一下Go语言的类型
下面来介绍一下Go语言的基本类型
布尔类型:bool eg: var isOk bool ;isOk=true isOk:=(1==2)
整形:int8 byte int16,int ,uint,initptr 等`注意:int 和int32是两种不同的类型,需要手动转换 v:=12 v默认推到为int类型 value2 = int32(value1)dd默认d
浮点型:float32 =>float ,float64 =>double
复数类型 :complex64,complex128
复数实际上由两个实数(在计算机中用浮点数表示)构成,一个表示实部(real),一个表示虚部(imag) value1 = 3.2 +
12i
字符串类型:string 注意:每个中文字符在UTF-8中占3个字节
字符类型 :rune
错误类型:error
下面是Go语言中的复合类型
指针:pointer
数组:array eg:var intArray [10]int; 1000]*float64 指针数组
注意1:在GO语言中数组是一个值类型,每传递一个数组都是对该数组的一个copy;
注意2:数组一旦定义,他的长度就不可改变
切片:slice
a: 数组切片的创建
1:基于数组
var myArray [10]int={1,2,2,3,4,5,6}
var mySlice []int= myArray[:5] -->代表从0个元素开始,数到第五个元素 1,2,2,3,4
2:直接创建
mySlice1 := make([]int, 5) 创建一个元素个数为5的切片,元素初始值为0:
mySlice1 := make([]int, 5,10) 创建一个元素个数为5,元素初始值为0,容量为10的数组切片
mySlice3 := []int{1, 2, 3, 4, 5} 直接创建并且初始化
b:元素遍历
1:for(i:=0;i<len(array);i++){
fmt.Print("第"+i+"个数组元素值:"+array[i])
}
2:for k,v:=range array{
fmt.Print("第"+k+"个数组元素值:"+v)
}
c:动态增减元素
mySlice:=make([]int,5,10){1,2,3,4,5}
添加:mySlice.append(mySlice,7,8,9)
d:基于数组切片创建数组切片
mySlice:=make([]int,5,10){1,2,3,4,5}
mySlice2:=mySlice[1,4]
e:内容复制
slice1 := []int{1, 2, 3, 4, 5}
slice2 := []int{5, 4, 3}
copy(slice2, slice1) // 只会复制slice1的前3个元素到slice2中
copy(slice1,
slice2) // 只会复制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
结构体:struct
接口:interface
关于通道 、结构体和接口涉及到Go的高级应用了,后续在学习,今天先到这里了
原文:http://www.cnblogs.com/dark-liu/p/3669737.html