规范

变量

声明,初始化,赋值

  1. 同一行声明多个变量并赋值: var a,b,c int =1,2,3 或者 d,e := 4,5
  2. 全局变量声明必须使用var关键字,局部变量可以省略(a,b,c int =1,2,3)
  3. 变量 _ 表示丢弃

    变量类型转换

  4. 类型转换必须是显示的,不存在隐式转换
  5. 只发生在兼容类型之间
  6. <变量名称> [:]= <目标类型>(<需要转换的变量>)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    package main
    import (
    "fmt"
    "reflect"
    )

    func main(){

    var a float32 = 3.1
    c := int(a)

    fmt.Println(c)
    fmt.Println(reflect.TypeOf(c))

    }

变量可见性规则

  1. 大写字母开头的变量可导出,其他包可以读取,是共有变量
  2. 小写字母开头的变量不可导出,是私有变量

常量

常量定义形式

常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型

  1. 显示 const identifier [type] = value
  2. 隐式 const identifier = value (通常叫做 无类型常量)
  3. 常量可以使用 内置表达式定义 eg: len(),unsafe.Size0f()

特殊常量 iota

  1. iota 在 const 关键字出现时被重置为 0
  2. const 中每新增一行常量声明 iota 就计数一次
  3. iota 只能在常量中使用

iota 常见使用法:

  1. 跳值使用法
  2. 插队使用法
  3. 表达式隐式使用法
  4. 单行使用法