一、声明变量
1 函数外声明变量
在函数外的任何代码都必须使用 关键子开头,无论
1.1 先声明变量,再给变量赋值
声明的语法格式: var 变量名 变量类型
赋值的语法格式: 变量名 = 值
package main
import "fmt"
var name string
func main() {
name = "shark"
fmt.Println(name)
}
Go 中字符串必须使用双引号, 比如上面示例中的 “shark”
1.2 声明变量同时给一个初始值
语法格式: var 变量名 变量类型 = 变量值
var name string = "shark"
1.3 声明变量简写
自动类型推断
在第一次声明变量的时候,假如给了变量一个初始值,Go 可以根据这个初始值自动推断出变量的类型。因此,类型可以省略不写。
var name = "shark"
一次声明多个同一类型的变量
var n1, n2 int
一次声明并赋值多个变量
类型可以混合
var n3, s = 69, "Mini"
var (
user = "shark"
age = 18
)
2 函数内声明变量
在函数内除了可以使用上面提到的函数外的所有定义方式。
还可以是用如下方式(常用)
语法格式: 变量名 := 变量值
声明变量的同时给变量赋值
func main(){
name := "shark"
age := 18
n4, n5 := "abc", 123
}
3 变量声明的小结
1 变量必须先定义再使用。
2 在函数内声明的变量,必须使用, 全局内声明的变量没有此限制。
3 给变量再次赋值,或者说修改变量的值的代码语句必须写在函数内。
并且,每次修改的值必须和之前的值类型一致。
4 如果首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用。
5 Golang 中字符必须使用英文的双引号。
二、变量的零值
在声明一个变量的时候,并没有给其指定具体的一个值,此时这个变量就会有个一默认的值,这个值在 go 语言中称为 零值。
不通的数据类型有不同的零值,这里先说几个简单的,后续在数据类型章节再一一列举。
package main
import "fmt"
var a, b int
var (
c int
d string
)
func main(){
fmt.Println(a,b) // 0 0
fmt.Printf("%d-%s",c,d) // 0-
}
从上面的输出中可以得出 int 类型的零值是 0 ,string 的零值是空字符串(目前是看不出效果的)。