标识符和关键字

标识符

标识符只能以字母和_组成,并且只能以字母和_开头。

关键字

Go中有25个关键字:

    break        default      func         interface    select     case         defer        go           map          struct     chan         else         goto         package      switch     const        fallthrough  if           range        type     continue     for          import       return       var

变量

变量声明

变量需要先声明,再使用。其语法如下:

var name string

其数据类型有:

  • string,字符串
  • int,整型
  • bool,布尔型

上面这种是一个变量一个变量的声明,go也有批量声明方式:

var (     name string     age int     isBoy bool )

变量的初始化:

func main(){     name = "joker"     age = 18     isBoy = true }

注意:

Go语言中非全局变量声明了必须使用,不使用则编译不过去。

变量还可以声明的同时并赋值:

var name string = "Joker"

也可以根据值来判断变量是什么类型:

var age = 14

还可以用简短变量声明(只能在函数体里使用):

name := "Joker" fmt.Print(name)

匿名变量

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。

匿名变量用_来表示,如下:

func foo(int, string){     return 10, "Joker" } func main(){     x, _ = foo()     _, y = foo() }

注意事项

  • 函数外的每个语句都必须以关键字开头,例如var func 等;
  • :=不能使用在函数体外;
  • _ 多用于占位符,表示忽略值;
  • 同一个作用域中不能重复声明同名的变量;

常量

常量是恒定不变的值,声明常量的关键字是const

常量在定义的时候必须赋值,如下:

const c1 = 3.14159

多个常量也可以一起声明,如下:

const (     c1 = 3.14     c2 = 0.68 )

在批量声明常量的时候,如果其中有一个常量没有赋值,其内容和上一个常量一样,如下c2,c3的内容也为200:

const (     c1 = 200     c2     c3 )

iota

iota 是go语言中的一种常量计数器,只能在常量的表达式中使用。

iotaconst 关键字出现的时候被重置为0,const 中的变量每声明一行常量声明将使iota 计数一次,iota 可理解为是const 语句块中的行索引,使用iota 能简化定义,在定义枚举时很有用,如下:

const (     n1 = iota       // n1=0     n2              // n2=1     n3              // n3=2 )

几种常见的用法:

(1)使用_跳过某些值

const (         n1 = iota //0         n2        //1         _         n4        //3     )

(2)iota声明中间插队

const (         n1 = iota //0         n2 = 100  //100         n3 = iota //2         n4        //3     )     const n5 = iota //0

(3)定义数量级

const (         _  = iota         KB = 1 << (10 * iota)         MB = 1 << (10 * iota)         GB = 1 << (10 * iota)         TB = 1 << (10 * iota)         PB = 1 << (10 * iota)     )

(4)、多个iota定义在一行

const (         a, b = iota + 1, iota + 2 //1,2         c, d                      //2,3         e, f                      //3,4     )
  • 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如未注明可能来源未知,如有侵权请联系管理员删除。

发表回复

后才能评论