声明与赋值
- 在Go语言中,在函数内(包括主函数内)var一个变量不能不用,不用会报错。
在Go语言中,有两种赋值方式:①长声明(使用var),②短声明(使用:=),且声明的时候可以根据赋予的值决定变量(或常量)的类型。
func test() { //声明时赋值 var arr1 = [5]int{0, 10, 20, 30, 40} fmt.Println(arr1) //短声明数组初始化 arr2 := [5]int{10, 11, 12, 13, 14} fmt.Println(arr2) //声明时也可以省略类型 var name = "声明并省略类型" fmt.Println(name) //声明时部分初始化,其余未初始化为0 arr3 := [5]int{15, 20} fmt.Println(arr3) //通过指定索引对某几个元素赋值 arr4 := [5]int{1: 100, 2: 200} fmt.Println(arr4) //直接使用...让编译器计算数组长度,某种意义上算动态数组? arr5 := [...]int{15, 20, 25, 30, 40} fmt.Println(arr5) fmt.Println("数组的长度是:", len(arr5)) //定义多个变量 //方式一: var a1, a2 = "1", "2" fmt.Println(a1, a2) //方式二: var ( a3 = "你好" a4 = "你好" ) fmt.Println(a3, a4) //常量 const a5 = "const常量" fmt.Println(a5) //如果要实现跨包访问变量,首字母要大写 var A6 = "可跨包访问变量" fmt.Println(A6) }
变量(或常量)声明指定了类型但未赋予其值时,该变量(或常量)会自动被赋予默认值。例如int型,如果不赋予变量值则默认为0。
func test() { //声明时没有指定数组内元素的值,默认为0 var arr [5]int fmt.Println(arr) arr[0] = 0 arr[1] = 1 arr[2] = 2 arr[3] = 3 arr[4] = 4 fmt.Println(arr) }
外部声明时必须使用var,不能用简短声明(:=)。
// 在外部声明必须使用var,不能用简短声明(:=)。全局变量没人用它,只会报警告,不会报错 var notice = "注意,不能用简单声明" func main() { ... }如果要实现变量跨包访问,将变量开头字母大写即可。
如果要实现变量跨包访问,将变量开头字母大写即可。
func test() { //如果要实现跨包访问变量,首字母要大写 var A6 = "可跨包访问变量" fmt.Println(A6) }
- Go语言中的常量可以是字符、字符串、布尔值或数值。但是常量不能用
:=
(短声明)语法声明。 类似数组变量可以直接用Go语言内自带的len()函数去获取数组的长度。
func test3() { //创建了一个二维数组 arr8 := [3][2]string{ {"1", "String0"}, {"2", "String1"}, {"3", "String2"}, } fmt.Println(arr8) fmt.Println("数组的长度是:", len(arr8)) //len()函数计算数组长度(元素个数) //for range遍历数组 for index, value := range arr8 { fmt.Printf("arr8[%d] = %s\n", index, value) } //隔开两个for循环的输出 fmt.Println("") //_的使用(后面日常写代码基本很常用) for _, value := range arr8 { //不声明变量时又要用,可以使用_ ←什么情况都是 fmt.Printf("vlaue = %s\n", value) } }
其他:
- 一般
int
表示整形的宽度根据电脑的位数而定,32即32,64即64。 - 一般有符号、无符号都是直接
int
、uint
,除非特殊才int8
、int16
、int32
...。 float
只有32,64。 32只提供大约6个十进制数(也就是表示小数点后6位)的精度,64同理,大约提供15个十进制数。- 各个类型的零值:①数值(int,float)类型零值为
0
、②布尔类型(bool)零值为false
、③字符串(string)零值为""
(空字符串)
评论(0)