前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言中的常量和变量

Go语言中的常量和变量

作者头像
极客运维圈
发布2020-03-22 09:24:13
7100
发布2020-03-22 09:24:13
举报
文章被收录于专栏:乔边故事

标识符和关键字

标识符

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

关键字

Go中有25个关键字:

代码语言:javascript
复制
    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

变量

变量声明

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

代码语言:javascript
复制
var name string

其数据类型有:

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

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

代码语言:javascript
复制
var (    name string    age int    isBoy bool)

变量的初始化:

代码语言:javascript
复制
func main(){    name = "joker"    age = 18    isBoy = true}

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

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

代码语言:javascript
复制
var name string = "Joker"

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

代码语言:javascript
复制
var age = 14

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

代码语言:javascript
复制
name := "Joker"fmt.Print(name)

匿名变量

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

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

代码语言:javascript
复制
func foo(int, string){    return 10, "Joker"}func main(){    x, _ = foo()    _, y = foo()}

注意事项

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

常量

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

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

代码语言:javascript
复制
const c1 = 3.14159

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

代码语言:javascript
复制
const (    c1 = 3.14    c2 = 0.68)

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

代码语言:javascript
复制
const (    c1 = 200    c2    c3)

iota

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

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

代码语言:javascript
复制
const (    n1 = iota       // n1=0    n2              // n2=1    n3              // n3=2)

几种常见的用法:

(1)使用 _跳过某些值

代码语言:javascript
复制
const (        n1 = iota //0        n2        //1        _        n4        //3    )

(2) iota声明中间插队

代码语言:javascript
复制
const (        n1 = iota //0        n2 = 100  //100        n3 = iota //2        n4        //3    )    const n5 = iota //0

(3)定义数量级

代码语言:javascript
复制
const (        _  = iota        KB = 1 << (10 * iota)        MB = 1 << (10 * iota)        GB = 1 << (10 * iota)        TB = 1 << (10 * iota)        PB = 1 << (10 * iota)    )

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

代码语言:javascript
复制
const (        a, b = iota + 1, iota + 2 //1,2        c, d                      //2,3        e, f                      //3,4    )

完-----------------------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乔边故事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 标识符和关键字
    • 标识符
      • 关键字
        • 变量
          • 变量声明
          • 匿名变量
          • 注意事项
        • 常量
          • iota
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档