变量和枚举常量

常量

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

注意点:
1.数据类型可以省略, 但是const不能省略
const num int = 666
const num = 666
2.定义常量不能使用 := , := 是专门用于定义局部变量的
const num := 666 //语法错误
3.定义局部变量没有使用, 编译会报错, 定义全局变量和常量没有使用, 不会报错
4.在Go语言中可以连续定义多个变量, 所以也可以连续定义多个常量

格式:

  • const 变量名称1, 变量名称2 数据类型 = 值1, 值2;
    const a, b, c int = 10, 20, 30
    const a, b, c = 10, 20, 30

  • const(
    变量名称1 数据类型 = 值1
    变量名称2 数据类型 = 值2
    )

const(
        a int = 10
        b int = 20
        c int = 30
    )
//const(
//      a  = 10
//      b  = 20
//      c  = 30
//  )

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

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

枚举常量

1.在C语言中的枚举本质就是一个整数
格式:
enum 枚举名 {
枚举元素1 = 值,
枚举元素2 = 值,
……
};
2.Go语言中没有明确枚举的固定写法, 但是在企业开发中一般都会以常量组的形式来表示枚举
格式:
const(
枚举元素 = 值
枚举元素 = 值
)

const(
    male = 0
    female = 1
)
注意点:

1.iota迭代器, 默认会从0开始递增

const(
    male = iota
    female = iota
    yao = iota
)
fmt.Printf("%d\n", male) // 0
fmt.Printf("%d\n", female) // 1
fmt.Printf("%d\n", yao) // 2

2.只要常量组中出现了iota, 该常量组中后续的常量都会一次递增1

const(
    male = iota
    female
    yao
)
fmt.Printf("%d\n", male) // 0
fmt.Printf("%d\n", female) // 1
fmt.Printf("%d\n", yao) // 2

3.如果常量组中的iota被打断了, 那么就不会继续递增了, 会按照常量组的默认方式处理(上一行的值)

const(
    male = iota
    female = 666
    yao
)
fmt.Printf("%d\n", male) // 0
fmt.Printf("%d\n", female) //666
fmt.Printf("%d\n", yao) // 666

4.如果常量组中的itoa被打断了, 但是后续又被回复了, 那么前面有多少行就会递增多少

const(
    male = iota
    female = 666
    yao = iota
)
fmt.Printf("%d\n", male) // 0
fmt.Printf("%d\n", female) // 666
fmt.Printf("%d\n", yao) // 2
//定义一个变量num
var num int = male
fmt.Printf("%d\n", num) // 0

你可能感兴趣的:(变量和枚举常量)