在 Go 语言中,const
关键字用于声明常量。常量在程序运行时不会改变,可以用于定义不变的值,如数学常数、固定的配置信息等。常量的类型可以是布尔型、数字型(整数型、浮点型和复数型)和字符串型。
常量的声明使用 const
关键字,语法如下:
const name = value
package main
import "fmt"
func main() {
const pi = 3.14159
const name = "Go Language"
fmt.Println("Pi:", pi)
fmt.Println("Language:", name)
}
常量可以显式地指定类型,也可以隐式地根据值推断类型。
package main
import "fmt"
func main() {
const pi float64 = 3.14159
const truth bool = true
const greeting string = "Hello, Go!"
fmt.Println("Pi:", pi)
fmt.Println("Truth:", truth)
fmt.Println("Greeting:", greeting)
}
package main
import "fmt"
func main() {
const pi = 3.14159
const truth = true
const greeting = "Hello, Go!"
fmt.Println("Pi:", pi)
fmt.Println("Truth:", truth)
fmt.Println("Greeting:", greeting)
}
可以在一个 const
语句中声明多个常量。
package main
import "fmt"
func main() {
const (
pi = 3.14159
e = 2.71828
greeting = "Hello, Go!"
)
fmt.Println("Pi:", pi)
fmt.Println("E:", e)
fmt.Println("Greeting:", greeting)
}
使用 iota
标识符可以生成一系列相关的常量,常用于枚举类型。
package main
import "fmt"
func main() {
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
Thursday // 4
Friday // 5
Saturday // 6
)
fmt.Println("Sunday:", Sunday)
fmt.Println("Monday:", Monday)
fmt.Println("Tuesday:", Tuesday)
fmt.Println("Wednesday:", Wednesday)
fmt.Println("Thursday:", Thursday)
fmt.Println("Friday:", Friday)
fmt.Println("Saturday:", Saturday)
}
iota
的值在每个 const
声明块中从 0 开始,每增加一行,值增加 1。可以使用 iota
创建复杂的常量表达式。
package main
import "fmt"
func main() {
const (
a = iota + 1 // 1
b // 2
c // 3
)
const (
x = 1 << iota // 1 << 0 = 1
y // 1 << 1 = 2
z // 1 << 2 = 4
)
fmt.Println("a:", a)
fmt.Println("b:", b)
fmt.Println("c:", c)
fmt.Println("x:", x)
fmt.Println("y:", y)
fmt.Println("z:", z)
}
const
声明,值在编译时确定,且不可改变。var
声明,值可以在运行时改变。package main
import "fmt"
func main() {
const pi = 3.14159
var radius = 5.0
area := pi * radius * radius
fmt.Println("Area of the circle:", area)
// 尝试修改常量会导致编译错误
// pi = 3.14 // 编译错误:cannot assign to pi
}
Go 语言的 const
关键字用于声明常量,常量的值在程序编译时确定,且不可改变。通过使用常量,可以提高代码的可读性和维护性。iota
标识符常用于生成枚举类型,方便创建一组相关的常量。掌握常量的使用方法,可以编写更加健壮和高效的 Go 程序。
原文链接:codingdict.net