菜单
×
   ❮   
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 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
自己动手试一试 »

Go 练习

通过练习来测试自己

练习

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

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

开始练习


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持