Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Go 变量


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


Go 变量类型

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

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

关于不同变量类型的更多信息,将在 Go 数据类型 章中介绍。


声明(创建)变量

在 Go 中,有两种方法可以声明变量

1. 使用 var 关键字

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

语法

var 变量名 类型 =

注意:你必须始终指定 类型(或两者)。

2. 使用 := 符号

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

语法

变量名 :=

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

注意: 无法使用 := 声明变量,而不为其赋值。


带初始值的变量声明

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

示例

package main
import ("fmt")

func main() {
  var student1 string = "John" // 类型为字符串
  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
自己试试 »

Go 练习

通过练习测试自己

练习

创建一个名为 myNum 的变量,并为其赋值 50

package main   
import ("fmt") 
func main() { var = fmt.Println() }

开始练习


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.