变量
声明,初始化,赋值
- 同一行声明多个变量并赋值: var a,b,c int =1,2,3 或者 d,e := 4,5
- 全局变量声明必须使用
var关键字,局部变量可以省略(a,b,c int =1,2,3) - 变量
_表示丢弃变量类型转换
- 类型转换必须是显示的,不存在隐式转换
- 只发生在兼容类型之间
- <变量名称> [:]= <目标类型>(<需要转换的变量>)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package main
import (
"fmt"
"reflect"
)
func main(){
var a float32 = 3.1
c := int(a)
fmt.Println(c)
fmt.Println(reflect.TypeOf(c))
}
变量可见性规则
- 大写字母开头的变量可导出,其他包可以读取,是共有变量
- 小写字母开头的变量不可导出,是私有变量
常量
常量定义形式
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
- 显示 const identifier [type] = value
- 隐式 const identifier = value (通常叫做 无类型常量)
- 常量可以使用 内置表达式定义 eg:
len(),unsafe.Size0f()等
特殊常量 iota
- iota 在 const 关键字出现时被重置为 0
- const 中每新增一行常量声明 iota 就计数一次
- iota 只能在常量中使用
iota 常见使用法:
- 跳值使用法
- 插队使用法
- 表达式隐式使用法
- 单行使用法