常量是代码中常用,且不会被修改的值. 常量中数据类型只能是字符串,数字和bool类型
// 单个常量赋值 const a int = 1 // 编译器自动判断类型 const a = 1 // 多个常量赋值 const a,b int = 1 const ( b=2 c=3 d=4 ) fmt.Println(b,c,d) //2 3 4 // 定义常量时,如果不写下面的值,默认和上面相同 const ( b=2 c d ) fmt.Println(b,c,d) //2 2 2 // 不同类型的常量不能在同一行赋值 // const a int,b string=1,"a" 是不允许的 // 但是编译器自动判断的创建是可以的 const a,b = 1,"a"iota是一种特殊的常量,可以视作可以被编译器修改的常量,多用作枚举. 每个iota初始都视作0 ,然后每次使用都会被加1
const ( a=iota b=iota c=iota ) 或 const ( a=iota b c ) fmt.Println(a,b,c) //0 1 2当iota自增中断,需重新启用恢复,计算时会包含跳过的值 有点类似const里面以0开头的行数计算
const ( a=iota b c d="aaa" e f=iota g ) fmt.Println(a,b,c,d,e,f,g) //0 1 2 aaa aaa 5 6变量是存储结果的量,根据变量名修行访问和修改
// 声明一个变量 var a int // 声明多个变量 var a,b int // 声明多个变量(多用于全局变量) var ( a string b int )如果不初始化,单声明一个变量,初始值为系统默认值 string为"", int为0, boolean为false, 其他多为nil 详细信息翻阅官方文档为准
// 创建一个变量,不指定类型,由系统自动判断 var a="abc" a:=abc // 创建多个变量 var a,b,c=1,2,3 a,b,c:=1,2,3不论是常量还是变量,创建之后必须使用,不然会报错 变量和常量可以用一些内置函数进行赋值
const a = "abcde" const b = len(a) //长度 const c = cap(a) //容量 const d = unsafe.Sizeof(a) //数据类型的大小 fmt.Println(a,b,c,d)