ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## **1.变量** Go语言中的变量需要声明后才能使用,同一作用域不支持重复声明。变量声明后必须使用。 ### **1.1.标准声明** 变量声明格式为: ``` var 变量名 变量类型 ``` ``` // 变量的定义,变量名在前,类型在后;自动初始化为零值 // int类型零值为0,string类型为空串,bool类型为false var num int var name string var isExist bool // 一次定义多个变量 var x, y int ``` ### **1.2.批量声明** ``` var ( a string b int c bool d float32 ) ``` ### **1.3.变量初始化** ~~~ var x, y int = 3, 4 var name string = "Alice" // 不同类型初始化 var age, gender = 23, "female" // 多行定义 var ( x, y int = 3, 4 name string = "Alice" ) ~~~ ### **1.4.短变量声明** 在函数内部,可以使用更简略的 `:=`方式声明并初始化变量。 ``` // 短变量声明 name, age, gender, isMarried := "alice", 21, "female", false // 短变量的限制: // 定义变量,同时显式初始化 // 不能提供数据类型 // 只能在函数内部使用 ``` ### **1.5.匿名变量** 在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量,用下划线`_`表示。 匿名变量不占用命名空间,不会分配内存,所以不存在重复声明。 ## **2.常量** 常量时恒定不变的值,多用于定义程序运行期间不会改变的那些值。关键字为`const`。 ``` const pi = 3.1415 ``` 也可以声明多个常量 ``` const ( pi = 3.1415 e = 2.7182 ) ``` ## **3.iota** `iota`是Go语言的常量计数器,只能在常量的表达式中使用。 `iota`在const关键字出现时将被重置为0。const中每新增一行常量声明将使`iota`计数一次。 ``` const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 ) ``` 可以使用`_`跳过某些值。 ``` const ( n1 = iota //0 n2 //1 _ n4 //3 ) ``` `iota`声明中间插队 ``` const ( n1 = iota //0 n2 = 100 //100 n3 = iota //2 n4 //3 ) const n5 = iota //0 ``` 定义数量级 `<<`表示左移操作, `1<<10`表示将1的二进制表示向左移10位,也就是`1`变成了`1000000000`也就是十进制的1024。 ``` const ( _ = iota KB = 1 << (10 * iota) MB = 1 << (10 * iota) GB = 1 << (10 * iota) TB = 1 << (10 * iota) PB = 1 << (10 * iota) ) ```