05-GoLang常量

箩篼 · · 846 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

常量

1.在C语言中可以通过const来定义常量
2.在Go语言中一样
3.格式: const 变量名称 数据类型 = 值;

注意点

  • 数据类型可以省略, 但是const不能省略
  • 定义常量不能使用 := , := 是专门用于定义局部变量的
  • 定义局部变量没有使用, 编译会报错, 定义全局变量和常量没有使用, 不会报错
  • 在Go语言中可以连续定义多个变量, 所以也可以连续定义多个常量
    格式:
    const 变量名称1, 变量名称2 数据类型 = 值1, 值2;
    const(
    变量名称1 数据类型 = 值1
    变量名称2 数据类型 = 值2
    )
    定义单个常量
    const num int  =  666   //方式一
    //const num  =  666     //方式二
    //const num := 666   报错,:=只能用于定义局部变量
    fmt.Printf("%d\n", num)

定义多个常量

    const a, b, c int  = 10, 20, 30  //方式一
    //const a, b, c  = 10, 20, 30    //方式二
    //常量不是变量,只能定义的同时初始化,之后不能赋值,后面三行代码会报错
    //a = 666
    //b = 777
    //c = 888

常量组

//方式一
const(
        a int = 10
        b int = 20
        c int = 30
    )
//方式二
//const(
    //  a  = 10
    //  b  = 20
    //  c  = 30
    //)
    //下三行会报错
    //a = 666
    //b = 777
    //c = 888

常量组的注意点

  • 和变量不同,定义的常量没有被使用,编译器不会报错, 可以编译运行
  • 在常量组中, 如果常量没有赋值, 那么默认值就是上一行的取值,注意,是一行!
const(
        a  = 666   //666
        b = 789    //789
        c          //789
    )
    fmt.Printf("%d, %d, %d", a, b, c)   
const(
        a, b = 10, 20
        c, d          //c,d对应a,b的值
    )
    fmt.Printf("%d, %d\n", a, b)  //10,20
    fmt.Printf("%d, %d\n", c, d)  //10,20

枚举常量

C语言中的枚举

  • C语言中的枚举本质就是一个整数
  • 格式:
    enum 枚举名 {
    枚举元素1 = 值,
    枚举元素2 = 值,
    ……
    };
    Go语言中的枚举
  • Go语句中没有明确枚举的固定写法, 但是在企业开发中一般都会常量组的形式来表示枚举
  • 格式:
    const(
    枚举元素 = 值
    枚举元素 = 值
    )
const(
        male = 0
        female = 1
    )
  • 迭代器iota
//iota是迭代器, 默认会从0开始递增
const(
        male = iota
        female = iota
        yao = iota
    )
  • 只要常量组中出现了iota, 该常量组中后续的常量都会一次递增1
const(
        male = iota    //0
        female         //1
        yao            //2
    )
  • 如果常量组中的iota被打断了, 那么就不会继续递增了, 会按照常量组的默认方式处理(上一行的值)
const(
        male = iota        //0
        female = 666       //666
        yao                //666
    )
  • 如果常量组中的itoa被打断了, 但是后续又被回复了, 那么前面有多少行就会递增多少
const(
        male = iota   //0
        female = 666  //666
        yao = iota    //2
    )

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:箩篼

查看原文:05-GoLang常量

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

846 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传