Go 变量

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


Go 变量类型

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

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

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


声明(创建)变量

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

1. 使用 var 关键字:

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

语法

var variablename type = value

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

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 :=:

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
亲自试一试 »

练习

通过练习测试自己

练习:

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

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

开始练习