跳到主要内容

Go语言的变量和常量

提示
  1. 定义和赋值:在 Go 中,变量使用 var 关键字声明,并指定固定的数据类型。变量值可以通过直接赋值、类型推断赋值或使用 := 运算符进行赋值。
  2. 变量规则和更改:变量名遵循特定的命名规则,且类型一经声明不可更改。变量的值可以更改,但不能更改其数据类型。
  3. Go 常量:使用 const 关键字创建常量,一旦声明其值就不能更改,且不能使用 := 语法创建常量。

Go 变量

在编程中,变量是用来存储数据的容器。以下是我们在 Go 编程中声明变量的方式。

var number int

这里,

  • number - 变量的名称
  • var - 用于声明变量的关键字
  • int - 与变量关联的数据类型

注意: 在 Go 中,每个变量都有一个固定的数据类型与之关联。数据类型决定了变量可以存储的数据类型。

例如,number 变量只能存储整数数据。这是因为它的类型是 int

我们将在下一教程中详细学习不同类型的数据类型

为 Go 变量赋值

有 3 种方法可以为变量赋值。

方法 1

var number int = 10

这里,我们已经为 number 变量赋值了整数 10

方法 2

var number = 10

这里,我们没有明确指定变量的数据类型。在这种情况下,编译器会自动通过查看变量的值来检测其类型。

由于值 10 是整数,number 的数据类型是 int

方法 3

number := 10

这里,我们使用 := 运算符为 number 变量赋值 10。这是赋值给变量的简写表示法。

Go 变量的重要注意事项

  1. 如果变量没有被赋予任何值,默认值会被赋予它。例如,
var count int
fmt.Println(count)

这里,count 变量打印出 0int 的默认值),因为我们没有给它赋任何值。

  1. 在 Go 中,每个变量必须与之关联的数据类型。否则,程序会抛出错误。
// 错误:count 变量没有数据类型
var count

// count1 是 int 类型的
var count1 int

// count2 是 int 类型的
var count2 = 10

示例:Go 变量

package main
import "fmt"

func main() {

// 明确声明数据类型
var number1 int = 10
fmt.Println(number1)

// 赋值而不声明数据类型
var number2 = 20
fmt.Println(number2)

// 定义变量的简写表示法
number3 := 30
fmt.Println(number3)
}

输出

10
20
30

改变变量的值

如变量名称variable所暗示的,我们可以改变存储在变量中的值。例如,

// 初始值
number := 10
fmt.println("初始 number 值", number) // 打印 10

// 改变变量值
number = 100
fmt.Println("改变后的值", number) // 打印 100

最初,10 被存储在变量中。然后,它的值被改变为 100

注意:在 Go 中,我们不能在声明后改变变量的类型。

在上面的例子中,number 变量只能存储整数值。它不能用于存储其他类型的数据。例如,

number := 10

// 错误代码
// 赋值字符串数据
number = "Hello"

一次创建多个变量

在 Go 中,也可以通过用逗号分隔它们来一次声明多个变量。例如,

var name, age = "Palistha", 22

这里,"Palistha" 被赋值给 name 变量。同样,22 被赋值给 age 变量。

上面的代码也可以写成:

name, age := "Palistha", 22

变量命名规则

  • 变量名称由字母、数字和下划线组成。
  • 变量不能包含其他符号($、@、# 等)。
  • 变量名称不能以数字开头。
  • 变量名称不能是保留字,因为它们是 Go 语法的一部分,如 inttypefor 等。

顺便说一下,我们应该尽量给变量起有意义的名称。这使你的代码更容易阅读和理解。

非法变量糟糕变量好变量
1aaage
s@larysalsalary
first namefnfirstName
annual-incomeannIncannualIncome

Go 常量

常量是一旦声明就不能更改的固定值。在 Go 中,我们使用 const 关键字来创建常量变量。例如,

const lightSpeed = 299792458 // 初始值

// 错误!常量不能被更改
lightSpeed = 299792460

顺便说一下,我们不能使用简写符号 := 来创建常量。例如,

// 错误代码
const lightSpeed := 299792458