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

笔记:您始终必须指定type或者value(或两者)。

2. 随着:=符号:

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

语法

variablename := value

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

笔记:无法使用以下方式声明变量:=,而不为其赋值。


带初始值的变量声明

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

示例

package main
import ("fmt")

func main() {
  var student1 string = "John" //type is string
  var student2 = "Jane" //type is inferred
  x := 2 //type is inferred

  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 :=
Can be used inside and outside of functions Can only be used inside functions
Variable declaration and value assignment can be done separately Variable declaration and value assignment cannot be done separately (must be done in the same line)

示例

此示例显示在函数外部声明变量,使用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
亲自试一试 »

围棋练习

通过练习测试一下

练习:

创建一个名为myNum并赋值50到它。

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

开始练习