Go语言变量与常量

Go语言变量与常量

Go语言变量

// 常规声明
var identifier type 
// 类型推导
var name = "Tom"
// 省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误
// 使用变量的首选形式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值。使用操作符 := 可以高效地创建一个新的变量,称之为初始化声明。
age := 18
// _抛弃符(匿名变量)
// 匿名变量不会占用命名空间,不会分配内存,所以匿名变量之间不会存在重复声明问题

Go语言常量

// 常规声明
const identifier [type] = value
// 显示声明
const name string = "Tom"
// 隐式声明
const age = 10
// 批量声明常量时,如果某一行声明后没有赋值,默认和上一行一致                                                                                                                                                                       
/*常量的用途*/
// 1. 作为全局常量,不可被改变
// 2. 用作枚举
const (
    Unknown = 0
    Female = 1
    Male = 2
)
// iota: 常量计数器,可以认为是一个可以被编译器修改的常量
// iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
 const (
     a = iota   //0
     b          //1
     c          //2
     d = "ha"   //独立值,iota += 1
     e          //"ha"   iota += 1
     f = 100    //iota +=1
     g          //100  iota +=1
     h = iota   //7,恢复计数
     i          //8
 )
// iota举例
// iota没遇到一个conts,其值变为0
// 一个const中,每加一行,iota值加一
const(
	d1, d2 = iota + 1, iota + 2  // d1 = 1, d2 = 2
    d3, d4 = iota + 1, iota + 2  // d3 = 2, d4 = 4
)
// itoa实用举例
const(
	_ = iota // 0丢弃
    KB = 1 << (10 * iota)  // 1左移10位变为 1^10
    MB = 1 << (10 * iota)  // 1左移20位变为 1^20
    GB = 1 << (10 * iota)
    TB = 1 << (10 * iota)
    PB = 1 << (10 * iota)
)

猜你喜欢

转载自blog.csdn.net/qq_44733706/article/details/113141696