• Golang的常量定义及使用案例


             Golang的常量定义及使用案例

                                作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

    一.常量的定义

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        /*
            什么是常量:
                在程序运行过程中其值不可以发生改变的量称为常量。
                比如游戏里的装备价格在整个程序运行中都是不允许发生改变的。
    
            在golang中有两种定义变量的方式,分别为"常量赋值",“自动推导类型常量”。
                1>.常量赋值语法格式:
                    const 常量名称 数据类型 = 值
                2>.自动推导类型常量语法格式(注意,常量赋值不要使用":="):
                    const 常量名称 = 值
    
            Go语言中使用常量注意事项:
                1>.常量一经定义不可修改,比如再次赋值是不允许的;
                2>.不可以获取常量的内存地址(在Go语言中在变量前使用"&"可以获取变量的内存地址);
                3>.常量和变量在不同的内存存储区域:
                    (1).常量存储在数据区(全局区)下面的常量区
                    (2)变量在栈区进行存储,但是在Go语言中将堆和栈进行统一管理,称为虚拟内存区域
                4>.为了将常量和变量有所区分,一般实际开发中,我们建议会将常量的名称所有字母均大写;
        */
    
        //常量赋值
        const NAME string = "尹正杰"
        fmt.Printf("变量na0me的数据类型是:%T,其对应的值是:%s
    ", NAME, NAME)
    
        //自动推导类型常量
        const AGE = 18
        fmt.Printf("变量age的数据类型是:%T,其对应的值是:%d
    ", AGE, AGE)
    
    }

    二.常量集(iota枚举)

    1>.使用常量集的注意事项

      常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。
    
      温馨提示:
        1>.在同一个const声明常量集中,在第一个声明的常量所在的行,iota将会被赋值为0,然后在每一个有常量声明的行加1;
        2>.在同一个常量集中,在同一行的iota的值相同;
        3>.在同一个常量集中,可以自定义常量集中的值,但不推荐和iota常量生成器混用,容易搞不清楚iota的值是多少;
        4>.如果不使用常量集,即单独定义常量,那iota的值都为0,定义常量集的好处就是在定义多个常量时不用每行都得写const关键字;

    2>.使用iota常量生成器为常量集赋值案例

    package main
    
    import (
        "fmt"
    )
    
    func main() {
    
        //在同一个常量集中,第一个iota等于0,每当iota在新的一行被使用时,它的值会自动加1
        const (
            A = iota
            B = iota
            C = iota
        )
        
        fmt.Printf("A = %d
    B = %d
    C = %d
    
    ", A, B, C)
    
        //在同一个常量集中,第一个iota等于0,每当iota在新的一行被使用时,它的值会自动加1,下面这种写法是上面写法的简写形式
        const (
            A1 = iota
            B1
            C1
        )
        
        fmt.Printf("A1 = %d
    B1 = %d
    C1 = %d
    
    ", A1, B1, C1)
    
        //在同一个常量集中,第一个iota等于0,每当iota在新的一行被使用时,它的值会自动加1,但是同一行的iota值是相同的哟~
        const (
            A2     = iota
            B2, C2 = iota, iota
            D2     = iota
        )
        
        fmt.Printf("A2 = %d
    B2 = %d
    C2 = %d
    D2 = %d
    
    ", A2, B2, C2, D2)
        
    }

    3>.自定义常量集的值案例

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        const (
            RED    = 1
            ORANGE = 2
            YELLOW = 4
            GREEN  = 8
            CYAN   = 16
            BLUE   = 32
            VIOLET = 64
        )
    
        fmt.Println("赤橙黄绿青蓝紫对应的标记为:", RED, ORANGE, YELLOW, GREEN, CYAN, BLUE, VIOLET)
    }

  • 相关阅读:
    敏捷开发(五)- 框架SCRUM内容
    敏捷开发(四)- 故事验收测试
    敏捷开发(三)- 估算故事
    敏捷开发(二)- 编写故事
    敏捷开发(一)- 搜集故事
    项目管理(十)- 开发准备列表
    项目管理(九)- 组织项目资源
    web 前端常用组件【04】Datetimepicker 和 Lodop
    让时间处理简单化 【第三方扩展类库org.apache.commons.lang.time】
    Word 打包 zip 并提供下载
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12244086.html
Copyright © 2020-2023  润新知