最适合网络开发者的网站
Golang。初学者课程

尿素

Go 变量


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


Go 变量类型

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

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

有关不同变量类型的更多内容,将在 Go 数据类型 章节。


声明(创建)变量

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

1. 使用 var 关键词:

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

句法

变量 变量名 类型 = 价值

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

2. 使用 := 符号:

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

句法

变量名 := 价值

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

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


带初始值的变量声明

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

例子

软件包 main
导入(“fmt”)

函数main(){
var student1 字符串 = “John” //类型是字符串
var 学生2 = “Jane” //类型是推断的
x := 2 //类型是推断的

fmt.Println(学生1)
fmt.Println(student2)
fmt.Println(x)
}
亲自尝试 »

笔记: 变量类型student2x推断 从他们的价值观出发。


无初值的变量声明

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

例子

软件包 main
导入(“fmt”)

函数main(){
变量为字符串
变量 b int
变量 c 布尔值

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

示例解释

此示例中有 3 个变量:

  • a
  • b
  • c

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

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

  • a""
  • b0
  • cfalse

声明后赋值

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

例子

软件包 main
导入(“fmt”)

函数main(){
var student1 字符串
学生1 =“约翰”
fmt.Println(学生1)
}
亲自尝试 »

笔记: 不能使用“:=“而不为其分配任何值。


var 和 := 之间的区别

两者之间存在一些细微的差异 var:=:

变量 :=
可以使用 里面外部 功能 只能使用 里面 功能
变量声明与赋值 可以单独完成 变量声明与赋值 无法单独完成 (必须在同一行完成)

例子

此示例显示了在函数外部声明变量,其中 var 关键词:

软件包 main
导入(“fmt”)

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

函数main(){
a = 1
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
亲自尝试 »

例子

自从 := 在函数外使用,运行程序会导致错误。

软件包 main
导入(“fmt”)

a := 1

函数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() }