变量定义告诉编译器要在哪里为一个变量创建多少存储空间。一个变量定义指定了数据类型并包含一个或多个变量。
Golang中的var
Golang中的var是一个用来创建变量的关键字。变量应该是适当的数据类型和初始值。Go编程语言也定义了其他变量,如枚举、指针、数组、结构和联合。
语法
请看下面的语法:
var variablelist identifier type = expression
变量列表可以是单个或多个变量名。
标识符类型是数据类型。
表达式是值。
参见下面的代码示例:
// hello.go
package main
import "fmt"
func main() {
var x int = 10
fmt.Printf("The value of x is: %d", x)
}
输出
go run hello.go
The value of x is: 10
使用var关键字的多变量声明
我们可以使用var关键字声明多个变量,请看下面的语法:
var sabrina, harvey, nick, hilda string
好的,现在,让我们用初始值来声明:
var sabrina, harvey, theo, roz int = 19, 21, 30, 46
Go中的类型推理
类型推断会让编译器知道类型,也就是说,在声明多个变量的时候,有一个选项可以删除一个类型。
通过直接给变量赋值,变量会自动声明该值的数据类型。
在Golang中声明和初始化不同类型的值
在声明时使用类型,你只能声明同一类型的多个变量。但是在声明时去掉type,就可以声明多个不同类型的变量。
请看下面的代码:
var(
sabrina = 11
nick = 21
zelda bool
hilda string = "Ambrose"
)
请看下面的完整例子:
// hello.go
package main
import "fmt"
func main() {
var a, b, c = 107, "Billion Dollar", "Jeff"
fmt.Printf("The value of a is : %d\n", a)
fmt.Printf("The value of b is : %s\n", b)
fmt.Printf("The value of c is : %s\n", c)
}
输出
go run hello.go
The value of a is : 107
The value of b is : Billion Dollar
The value of c is : Jeff
短变量的声明
在一个函数内部,可以用:=短赋值语句来代替隐含类型的var声明。
在函数外部,每个语句都以关键字(var、func等)开始,所以:=结构体不可用。
请看下面的代码:
// hello.go
package main
import "fmt"
func main() {
var x, y int = 11, 21
z := 30
w, python, javascript := true, false, "no!"
fmt.Println(x, y, z, w, python, javascript)
}
输出
go run hello.go
11 21 30 true false no!
Golang中的lvalues和rvalues
在Go中,有两种表达式。
- lvalue指向内存位置的表达式被称为 "lvalue"表达式。lvalue可以出现在赋值的左手边或右手边。
- rvalue术语rvalue指的是存储在某个内存地址的数据值。rvalue是一个不能被赋值的表达式,这意味着rvalue可以出现在赋值的右边,但不能出现在左边。
变量是lvalues,要在赋值的左边看。然而,数字字元是r值,所以不能被赋值,也不能出现在赋值的左侧。
结论
变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。
大写和小写字母是不同的,因为Go是一种区分大小写的语言。
Go中的var就这样了。