// var 变量名 变量类型 var name string
// 批量声明 var ( a string b int )
// 初始化 var 变量名 类型 = 表达式 // 一次初始化多个 var a, b = 1, 2
// 变量推导,可以省略类型,根据右边定义的值自动推导类型 var a = 123
// 短变量声明,一般用于函数内部,不能在函数外使用 a := 100
// 匿名变量,用 _ 表示 用于获取多个值时忽略某个值 package main import "fmt" func qwer() (int, string) { return 1, "haha" } func main() { a, _ := qwer() _, b := qwer() fmt.Println("a=", a) fmt.Println("b=", b) }
// const 常量名 = xxx const a = 1
// 多个常量 const ( b = 12 c = 34 ) // const同时声明多个常量时,如果省略了值则表示和上面一行的值相同 const ( d = 12 e )
iota
是go语言的常量计数器,只能在常量的表达式中使用
//iota
在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota
计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。
const ( a = iota // 0 b // 1 ) const c = iota // 0
// demo1 使用 _ 跳过某些值 const ( n1 = iota //0 n2 //1 _ n4 //3 ) // demo2 iota声明中间插队 const ( n1 = iota //0 n2 = 100 //100 n3 = iota //2 n4 //3 ) /* demo3 定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。) */ const ( _ = iota KB = 1 << (10 * iota) MB = 1 << (10 * iota) GB = 1 << (10 * iota) TB = 1 << (10 * iota) PB = 1 << (10 * iota) ) // demo4 多个iota定义在一起 const ( a, b = iota + 1, iota + 2 //1,2 c, d //2,3 e, f //3,4 )
参考 https://www.liwenzhou.com/posts/Go/go_menu/ 整理记录
原文:https://www.cnblogs.com/nernogno/p/12589800.html