在 Go 语言中,常量和字面量是编程中常见的概念,它们在编写程序时起到了重要的作用。下面分别介绍 Go 中常量和字面量的特点和用法:

常量(Constants)

常量是指程序中固定不变的值,一旦定义后不能被修改。在 Go 中,常量可以是数值、布尔值或字符串等基本类型,它们在编译时就已经确定其值。

定义常量

在 Go 中定义常量使用 const 关键字,语法为:

const identifier [type] = value
  • identifier 是常量的名称。
  • [type] 是可选的类型说明符,可以省略,如果省略则根据赋予的值自动推断类型。
  • value 是常量的值,必须在编译时能够确定。

例如:

const pi = 3.14159
const maxRetry = 3
const welcomeMessage = "Hello, World!"

常量枚举

常量枚举是一种常见的用法,可以简化代码中的重复定义:

const (
    Monday    = 1
    Tuesday   = 2
    Wednesday = 3
    Thursday  = 4
    Friday    = 5
)

常量表达式

常量可以通过在声明时进行基本运算得到,例如:

const (
    a = 10
    b = 20
    c = a + b // 常量表达式
)

字面量(Literals)

字面量是表示固定值的符号,字面量可以是常量、变量或表达式的具体值。在 Go 中,有多种类型的字面量:

  • 整数字面量:如 42, -100, 0xFF(十六进制)、077(八进制)等。
  • 浮点数字面量:如 3.14, 1.5e-10 等。
  • 复数字面量:如 3.14i, 1 + 2i 等。
  • 字符串字面量:如 "Hello, World!", 'a', `多行 字符串` 等。
  • 布尔字面量truefalse
  • 符文字面量:如 'a', '\n', '\u2318' 等。

示例

package main

import "fmt"

func main() {
    const pi = 3.14159
    fmt.Println("Pi value is", pi)

    const (
        Monday = 1
        Tuesday = 2
        Wednesday = 3
        Thursday = 4
        Friday = 5
    )
    fmt.Println("Monday is", Monday)
}

总结

  • 常量 在程序运行期间保持不变,适合用于定义程序中不会改变的值。
  • 字面量 表示固定值的符号,在编写代码时直接使用,使代码更加清晰和易读。
  • 使用常量和字面量能够使程序更具可读性和可维护性,并能够在编译时进行静态检查,减少运行时错误的可能性。