变量

Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。

单变量的声明方式

  • 声明变量,指出类型,但未初始化,默认为零值。

    1
    var a int
  • 声明变量,指出类型,同时进行初始化。

    1
    var b int = 30
  • 声明变量,进行初始化,但类型要由值自行判定。

    1
    var c = "hello"
  • 省略关键字var和变量类型,改用:=,但左侧必须有新变量,否则会报错,且这种方式不可以用来声明全局变量,必须用在函数体中。

    1
    d := "hi"

多变量的声明方式

  • 基本同上述单变量的声明,各个变量间逗号隔开即可。

  • 下面这种方式一般用于全局变量的声明,也便于指定不同的类型。

    1
    2
    3
    4
    var (
    zz int = 900
    ss string = "happy"
    )

常量

常量是一个简单值的标识符,在程序运行时,不会被修改的量。

常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

单个常量的声明方式:

  • 给出类型

    1
    const a int = 30
  • 根据值自行判定类型

    1
    const b = "hello"

多常量的声明方式:

  • 单行

    1
    const xx, yy = 300, "day"
  • 多行

    1
    2
    3
    4
    const (
    zz int = 900
    ss string = "happy"
    )

iota的使用

特殊常量。在const关键字出现时将被重置为 0,const 中每新增一行常量声明将使 iota 累加计数一次。

iota 可以被用作枚举值:

1
2
3
4
5
const (
a = iota //a = 0
b = iota //b = 1
c = iota //c = 2
)

可以简写为如下形式:

1
2
3
4
5
const (
a = iota //a = 0
b = //b = 1
c = //c = 2
)

中间可以插入独立值,但计数仍然继续,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import "fmt"

func main() {
const (
a = iota //0
b //1
c //2
d = "hello" //独立值hello,iota += 1
e // 跟随上行的独立值hello,iota += 1
f = 100 // 独立值100,iota += 1
g //跟随上行的独立值100,iota += 1
h = iota //7,
i //8
)
fmt.Println(a,b,c,d,e,f,g,h,i)
}

结果为:

1
0 1 2 hello hello 100 100 7 8