变量与常量 - Go 学习记录

变量声明、初始化、赋值

  • 单个变量的声明格式为: var <变量名称> [变量类型]
  • 变量的赋值格式: <变量名称> = <值,表达式,函数等>
  • 声明和赋值同时进行:var <变量名称> [变量类型] = <值,表达式,函数等>
  • 分组声明格式:
    var (
        number int
        floatNumber float32
        username string
    )
  • 同一行声明多个变量和赋值:var a,b,c int = 1,2,3 或者 a,b:=1,2(只能用于函数体内)
  • 全局变量的声明必须使用 var 关键字,局部变量可以省略
  • 特殊变量下划线 _
  • Go 中不存在隐式转换,类型转换必须是显式的
  • 类型转换只能发生在两种兼容类型之间
  • 类型转换格式:<变量名称>[:]=<目标类型>(<需要转换的变量>)
  • 大写字母开头的变量是可以导出的,也就是其他包可以读取的,是公用变量
  • 小写字母开头的就是不可以导出的,是私有变量

常量定义形式和常量类型范围

  • 常量定义从形式上可以分为显式和隐式
    显式:const identifier [type] = value
    隐式:const identifier = value (通常叫无类型常量)
  • 常量可以使用内置表达式(函数)定义,例如 len(),unsafe.Sizeof()
  • 常量类型范围目前值支持布尔型、数字型(整数型、浮点和复数)和字符串

特殊常量iota的使用(只能在常量定义中使用,函数体中不能使用)

  • iota 在const 关键字出现的时将被重置为 0
  • const中每新增一行常量声明将使用iota计数一次
  • iota 常见使用发:

    1. 跳值使用
      const (
      iotae = iota // 0
      _ // 通过下划线来达到 跳值使用法  会把1 赋值给下划线 1
      _ // 2
      iotaf = iota // 3
      )
    2. 插队使用
      const (
          iotag = iota // 0
          iotah = 3.14 // 3.14
          iotaj = iota // 2
      )
    3. 表达式隐式使用
      const (
      a = iota * 2 // 0
      b = iota * 3 // 3
      c  // 6
      d  // 9
      )
    4. 单行使用
      const (
      iotay,iotau = iota,iota+3 // 0 , 3
      iotao,iotas // 1,4 iotao 沿用第一个也就是 iotay的,而 iotas 沿用的是iotau的
      ff = iota // 2
      )

    如想看教程同步的代码移步 GitHub 地址。

本作品采用《CC 协议》,转载必须注明作者和本文链接
微信搜索:上帝喜爱笨人
讨论数量: 2

我也是php开发的,向博主学习~~~

5年前 评论

@Doooyf 一起共同学习。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!