标准声明
var 变量名 变量类型
var studentName string
变量声明可以写在函数外,但是全局变量不能和函数体内的局部变量重名,并且声明的变量必须使用(全局变量除外),变量声明采用小驼峰命名
批量声明
var (
name strig
age int
)
短变量声明
只能写在函数内部name := "messi"
匿名变量
匿名变量用_表示,匿名变量不会被分配内存,也不占用命名空间,例如
package main
import (
"fmt"
)
func foo()(string, int) {
return "name", 1
}
func main() {
name, _ := foo()
fmt.Print(name)
}
变量赋值
单个变量初始化
var name string
name = "梅西"
或者
var name string = "messi"
多个变量初始化var name, age = "messi", 15 这时候省略变量类型,编译器会根据赋值号右边的类型进行推导 或者是这样写 var score,age int score, age = 10, 20
但是下面的写法是错的,因为name和age不是同一类型var name, age name, age = "messi", 15
常量
把变量声明中的var换成const即可,const同时声明多个变量时,如果省略了值则表示与上一行相同
// 这种写法报错的原因是,不知道age的值
const (
age int
score = 1
)
iota
iota
是常量计数器,只能在常量表达式中使用,在const关键字出现的时候被置0,const中每新增一行常量声明就会让iota
计数一次,可以理解为是const语句块中的 行索引
常见示例
示例1
//b因为省略了值,所以和上面的a一样,都为iota,所以b为1
const (
a = iota //0
b //1
c //2
)
示例2
const (
a = iota
b //1
_ //2
c //3
)
示例3
const (
a = iota //0
b = 100
c //2
d //3
)
示例4
const (
a, b = iota + 1, iota + 2
c, d = iota + 1, iota + 2
// a = 1, b = 2, c = 2, d = 3
)