Go语言常量(const)

Go语言常量(const)教程

Golang 中的常量用于存储不会改变的数据,Go 语言常量的定义使用 const 关键字。Go 语言常量是在编译时被创建,即使被定义为 函数 局部的也如此。

Go 语言常量只能是 布尔型数字型(整数型、浮点型和复数)和 字符串型。由于编译时的限制,定义常量的表达式必须为能被编译器求值的常量表达式。

常量在定义时,必须赋初值,因为 Golang 的常量不可被修改,因此,如果不赋初值,那么常量永远没有值。

Go语言常量(const)详解

定义

const identifier [type] = value

参数

参数 描述
const 定义常量,所使用的关键字。
identifier 常量名。
type 常量的数据类型。
value 常量的值。

说明

使用 const 关键字定义常量。type 可以省略,使用编译器的自动类型推导。且常量在定义时,必须赋初值。

多个常量定义详解

语法

const( e = 2.7182818 pi = 3.1415926 )

说明

Golang 的常量定义和变量定义一样,可以支持一次定义多个。

Go语言常量(const)简写形式详解

语法

const( a = 1 b c = 2 d e )

说明

批量声明的常量,除了第一个外其它的常量右边的初始化表达式都可以省略。如果省略初始化表达式则表示使用前面常量的初始化表达式写法,对应的常量类型也一样的。

所以,上面的常量,其中 a 和 b 的值都为 1,c 、d 和 e 的值都为 2。

Go语言常量(const)说明

Go 语言常量的值必须是能够在编译时就能够确定的。Go 语言常量可以在其赋值表达式中涉及计算过程,但是所有用于计算的值必须在编译期间就能获得。

const c1 = 2/3 //正确,在编译时可以确定 c1 的值 const c2 = getNum() //错误,c2 的值需要在运行时才能确定

案例

定义常量

使用 const 关键字定义常量

package main import ( "fmt" ) func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") //Golang 使用 const 定义常量 const e = 2.7182818 const pi = 3.1415926 fmt.Println("e = ", e, "pi = ", pi) }

程序运行,结果如下:

58 golang const.png

首先,我们使用 const 定义了一个 float64 类型的常量 e,并赋值为 2.7182818。接着,我们再次使用 const 定义了一个 float64 类型的常量 pi,并赋值为 3.1415926。

批量定义常量

使用 const 关键字批量定义常量

package main import ( "fmt" ) func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") //Golang 使用 const 批量定义常量 const( e = 2.7182818 pi = 3.1415926 ) fmt.Println("e = ", e, "pi = ", pi) }

程序运行,结果如下:

59 golang const.png

我们使用 const 一次定义了两个常量。

批量定义常量

使用 const 关键字批量定义常量,忽略值

package main import ( "fmt" ) func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") //Golang 使用 const 批量定义常量,忽略值 const( a = 1 b c = 2 d e ) fmt.Println("a = ", a, "b = ", b, "c =", c, "d =", d, "e =", e) }

程序运行,结果如下:

60 golang const.png

我们使用 const 一次定义了五个常量,并且只给常量 a 和常量 c 赋值。所以常量 b 的值和常量 a 的值保持一致,常量 d 和常量 e 的值和常量 c 的值保持一致。

Go语言常量(const)总结

Golang 中的常量用于存储不会改变的数据,Go 语言常量的定义使用 const 关键字。Go 语言常量的值必须是能够在编译时就能够确定的。

Golang 常量定义和变量定义一样,可以支持一次定义多个。