var v1 int
var v2 string
var v3 [10]int //数组
var v4 []int //数组切片
var v5 struct {
f int
}
var v6 *int //指针
var v7 map[string] int //map,key为string类型,value为int类型
var v8 func(a int) int
var { //可以将若干需要声明的变量放在一起,避免重复写var
v10 int
v11 string
}
备注:变量声明语句不需要使用分号作为结束符。
备注:已经声明过的变量不能再定义。
var v1 int = 10
var v2=10 //编译器可以自动推导出v2的类型
v3 := 10 //编译器可以自动推导出v2的类型
Go语言内置了以下基础类型:
(1)布尔类型:bool;
(2)整型:int8、byte、int16、int、uint、uintptr等;
(3)浮点类型:float32、float64;
(4)复数类型:complex64、complex128;
(5)字符串:string:x+y(字符串连接)、len(s)(字符串长度)、s[i](取字符);
(6)错误类型:error;
(7)指针(pointer);
(8)数组(array):如果作为参数传递,则是值传递,不会改变其内容;
(9)切片(slice):像一个指向数组的指针,可以随时动态扩充存放空间,len()、cap()、append(),数组切片会自动处理存储空间不足的问题,创建方式主要有以下几种:
mySlice = myArray[:]
mySlice = myArray[:5]
mySlice := make([]int, 5) //创建一个初始元素个数为5的数组切片
mySlice := make([]int, 5,
10) //创建一个初始元素个数为5的数组切片,并预留10个元素的存储空间
mySlice := []int{1, 2, 3, 4, 5}
(10)字典(map):是一堆键值对的未排序集合;
(11)通道(chan);
(12)结构体(struct);
(13)接口(interface);