GO----常量与变量(持续更新)

一、var和const

(分别申明变量和常量)除非是全局变量或者是任意位置的常量,否侧定义了就一定要使用
:=方法只有变量才有

1. 多变量同时定义值 [单个变量同理, 命名时,首个单词小写, 每个独立单词首字母大写]

var name1, name2, name3 string = "name1", "name2", "name3" //也可以不声明参数类型
const age int = 10

值为所谓的字面量,参数为常量或变量;当未赋值[var name1 int],则数值类型是0,bool值是false,字符串是空。

name1, name2, name3 := "name1", "name2", "name3"

二、变量声明但未赋值的情况

*这个情况下,值就是定义时指定类型的零值当在一个const下,每有一个变量产生,iota+1, 当赋值给变量一个新值,产生独立值,iota默认+1,并在变量=iota后恢复计数,继续统计

int->0
float->0.0
bool->false
string->""

二、特殊常量关键字--iota

1.iota只能在常量的表达式中使用

fmt.Println(iota)
编译错误: undefined: iota

2.每次 const 出现时,都会让 iota 初始化为0.

const a = iota // a=0
const (
   b = iota     //b=0
   c            //c=1
)

3.自定义类型
自增长常量经常包含一个自定义枚举类型,允许你依靠编译器完成自增设置。

type Stereotype int
const (
 TypicalNoob Stereotype = iota // 0
 TypicalHipster                    // 1   
 TypicalHipster = iota TypicalUnixWizard             // 2  
 TypicalUnixWizard = iota TypicalStartupFounder         // 3   
 TypicalStartupFounder = iota
)

4、位掩饰表达式

type Allergen int
const (
 IgEggs Allergen = 1 << iota // 1 << 0 which is 00000001
 IgChocolate                         // 1 << 1 which is 00000010
 IgNuts                               // 1 << 2 which is 00000100
 IgStrawberries                   // 1 << 3 which is 00001000
 IgShellfish                         // 1 << 4 which is 00010000
)

5、定义在一行

const (
 Apple, Banana = iota + 1, iota + 2 //1,2
 Cherimoya, Durian    //2,3
 Elderberry, Fig
) //3,4

6、当在一个const下,每有一个变量产生,iota+1, 当赋值给变量一个新值,产生独立值,iota默认+1,并在变量=iota后恢复计数,继续统计

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容