导航
×
   ❮   
HTML CSS JavaScript PHP Go ECMS

Go 变量


变量是用于存储数据值的容器。


Go 变量类型

在 Go 中,有不同**类型**的变量,例如:

  • int - 存储整数(整型数),例如 123 或 -123
  • float32 - 存储浮点数,带小数,例如 19.99 或 -19.99
  • string - 存储文本,例如 "Hello World"。字符串值用双引号括起来
  • bool - 存储有两种状态的值:true 或 false

关于不同变量类型的更多信息,将在 Go 数据类型章节进行解释。


声明(创建)变量

在 Go 中,有两种声明变量的方式:

1. 使用 var 关键字

使用 var 关键字,后跟变量名和类型

语法

var variablename type = value

注意:您必须始终指定 typevalue(或两者)。

2. 使用 := 符号

使用 := 符号,后跟变量值

语法

variablename := value

注意: 在这种情况下,变量的类型是根据值**推断**出来的(这意味着编译器会根据值来决定变量的类型)。

注意:不能使用 := 声明一个没有赋值的变量。


带初始值的变量声明

如果变量的值从一开始就知道,您可以在一行中声明变量并为其赋值

实例

package main
import ("fmt")

func main() {
  var student1 string = "John" // 类型是 string
  var student2 = "Jane" // 类型被推断
  x := 2 // 类型被推断

  fmt.Println(student1)
  fmt.Println(student2)
  fmt.Println(x)
}
亲自试一试 »

注意:student2x 的变量类型是从它们的值中**推断**出来的。


不带初始值的变量声明

在 Go 中,所有变量都会被初始化。因此,如果您声明一个没有初始值的变量,它的值将被设置为其类型的默认值

实例

package main
import ("fmt")

func main() {
  var a string
  var b int
  var c bool

  fmt.Println(a)
  fmt.Println(b)
  fmt.Println(c)
}
亲自试一试 »

实例说明

在此实例中有 3 个变量

  • a
  • b
  • c

这些变量已声明,但尚未分配初始值。

通过运行代码,我们可以看到它们已经具有各自类型的默认值

  • a""
  • b0
  • cfalse

声明后的值赋值

可以在声明变量后为其赋值。这对于值未知的初始情况很有用。

实例

package main
import ("fmt")

func main() {
  var student1 string
  student1 = "John"
  fmt.Println(student1)
}
亲自试一试 »

注意:不能使用“:=”声明一个没有赋值的变量。


var 和 := 的区别

var 和 := 之间有一些小区别

var :=
可以在函数**内部**和**外部**使用 只能在函数**内部**使用
变量声明和赋值可以**分开进行** 变量声明和赋值**不能分开进行**(必须在同一行完成)

实例

此实例显示使用 var 关键字在函数外部声明变量

package main
import ("fmt")

var a int
var b int = 2
var c = 3

func main() {
  a = 1
  fmt.Println(a)
  fmt.Println(b)
  fmt.Println(c)
}
亲自试一试 »

实例

由于 := 在函数外部使用,运行程序将导致错误。

package main
import ("fmt")

a := 1

func main() {
  fmt.Println(a)
}

结果

./prog.go:5:1: syntax error: non-declaration statement outside function body
亲自试一试 »

freew3c.com 中文网是独立运营的中文开发者学习平台,与 freew3c.com 无关联。提供的内容仅用于学习和测试,不保证内容的正确性。


Copyright @2020-2026 京ICP备888888号-8