目录
2,使用var关键字声明了变量类型的变量名不可赋其他类型的值
一,声明单个变量的四种方式
0,变量名取名规范与空白标识符
只能包含:字母数字下划线,不能以数字开头,不能使用系统关键字(如if,else,break)。下划线_表示空白标识符,他的值会被忽略。
1,声明的时候就赋值
这种方式简记为:我爱int等于10。
var i int64 = 10
2,先声明,再赋值
是对第一种方式的拆分。
var i int
i = 1
3,省略变量类型
由于go的动态特性,会像python一样自动的识别数据类型(类型推导)。
var i = 10
4,省略var关键字和变量类型
需要确保i没有被var声明过,才能使用下面的语法格式。推荐使用这一种方式。
i:=10
二,同时声明多个变量的语法
1,声明时初始化赋值
package main
import "fmt"
func main() {
var v4, v5, v6 int = 4, 5, 6
fmt.Println(v4, v5, v6)
}
2,先声明,再逐一赋值
当然这些变量的类型只能相同。
package main
import "fmt"
func main() {
var v1, v2, v3 int
v1 = 1
v2 = 2
v3 = 3
fmt.Println(v1, v2, v3)
}
3,省略变量类型(类型推导)
package main
import "fmt"
func main() {
var v1, v2, v3 = 1, 2, 'a'
fmt.Println(v1, v2, v3)
}
4,使用:=的形式(省略var及变量类型)
package main
import "fmt"
func main() {
v1, v2, v3 := 1, 2, 'a'
fmt.Println(v1, v2, v3)
}
三,将一个变量赋值给另一个变量
这将创建一个新的对象与变量名进行绑定。
package main
import "fmt"
var all = 1
func main() {
var v1, v2 int
v1 = 1
v2 = v1
fmt.Println(&v1, &v2)
}
四,变量声明的简洁写法
将所有变量声明写在一个括号里,当然这种只适用于数据类型推导形式。一般用于声明全局变量。
package main
import "fmt"
var (
v3 = 3
v4 = 4
v5 = 5
)
func main() {
fmt.Println( v3, v4, v5)
}
五,变量使用注意点
1,不可以重复声明同一个变量名
同一个层次的代码块里不允许声明重复的变量名。下面代码会报错。
var i int 10
i:=1
2,使用var关键字声明了变量类型的变量名不可赋其他类型的值
var i int = 10
i = 'q'//报错
var k int = 1
k = 'w'//报错
六,交换两个变量的值的简写语法
a,b = b,a
七,变量的默认值
当我们声明了变量却没有给他赋值,那么go编译器会自动赋值。
var i int //整型默认为0
var buer bool //布尔类型默认为false
var fl = float //浮点型型默认为0。0
var str = sting //字符串类型默认为空字符串"
八,变量的两种分类:值与引用
数值(整数,小数),布尔,字符串为值类型,引用这些类型的变量名直接指向他们的值。引用类型比如数组,变量名记录的是地址。
九,变量三要素
变量=变量名+类型+值。