美文网首页
04 Go常量和枚举常量

04 Go常量和枚举常量

作者: 亨锅锅 | 来源:发表于2018-09-19 18:52 被阅读0次

一、常量

package main

import "fmt"

func main() {
    /*
    1.在C语言中可以通过const来定义常量
    2.在Go语言中一样
    3.格式:
    const 变量名称 数据类型 = 值;
    注意点:
    1.数据类型可以省略, 但是const不能省略
    2.定义常量不能使用 := , := 是专门用于定义局部变量的
    3.定义局部变量没有使用, 编译会报错, 定义全局变量和常量没有使用, 不会报错

    4.在Go语言中可以连续定义多个变量, 所以也可以连续定义多个常量
    格式:
    const 变量名称1, 变量名称2 数据类型 = 值1, 值2;
    const(
      变量名称1 数据类型 = 值1
      变量名称2 数据类型 = 值2
    )

    5.常量组的注意点
    在常量组中, 如果常量没有赋值, 那么默认值就是上一行的取值
     */

     // 1.定义单个常量
    //const num int  =  666
    //const num  =  666
    //const num  :=  666 // 报错
    //num = 789 // 报错
    //fmt.Printf("%d\n", num)

    // 2.定义多个常量
    //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


    // 3.常量组的注意点
    // 在常量组中, 如果常量没有赋值, 那么默认值就是上一行的取值
    //const(
    //  a  = 666
    //  b  = 789
    //  c
    //)
    //fmt.Printf("%d, %d, %d", a, b, c)


    //var(
    //  a, b = 10, 20
    //  c, d = 30, 40
    //)
    //fmt.Printf("%d, %d\n", a, b)
    //fmt.Printf("%d, %d\n", c, d)


    const(
        a, b = 10, 20
        c, d
    )
    fmt.Printf("%d, %d\n", a, b)
    fmt.Printf("%d, %d\n", c, d)

}

二、枚举常量

package main

import "fmt"

func main() {
    /*
    1.C语言中的枚举本质就是一个整数
    enum 枚举名 {
        枚举元素1 = 值,
        枚举元素2 = 值,
        ……
    };

    2.Go语句中没有明确枚举的固定写法, 但是在企业开发中一般都会常量组的形式来表示枚举
    const(
     枚举元素 = 值
      枚举元素 = 值
    )
     */

    //const(
    //  male = 0
    //  female = 1
    //)
    // 注意点:
    // 1.iota迭代器, 默认会从0开始递增

    //const(
    //  male = iota
    //  female = iota
    //  yao = iota
    //)
    // 2.只要常量组中出现了iota, 该常量组中后续的常量都会一次递增1
    //const(
    //  male = iota
    //  female
    //  yao
    //)
    // 3.如果常量组中的iota被打断了, 那么就不会继续递增了, 会按照常量组的默认方式处理(上一行的值)
    //const(
    //  male = iota
    //  female = 666
    //  yao
    //)

    // 4.如果常量组中的itoa被打断了, 但是后续又被回复了, 那么前面有多少行就会递增多少
    const(
        male = iota
        female = 666
        yao = iota
    )
    fmt.Printf("%d\n", male)
    fmt.Printf("%d\n", female)
    fmt.Printf("%d\n", yao)

    var num int = male
    fmt.Printf("%d\n", num)
}

相关文章

网友评论

      本文标题:04 Go常量和枚举常量

      本文链接:https://www.haomeiwen.com/subject/krfwnftx.html