Golang中的var以及什么是Golang var 关键字

809 阅读3分钟

变量定义告诉编译器要在哪里为一个变量创建多少存储空间。一个变量定义指定了数据类型并包含一个或多个变量。

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声明。

在函数外部,每个语句都以关键字(varfunc等)开始,所以:=结构体不可用。

请看下面的代码:

// 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中,有两种表达式。

  1. lvalue指向内存位置的表达式被称为 "lvalue"表达式。lvalue可以出现在赋值的左手边或右手边。
  2. rvalue术语rvalue指的是存储在某个内存地址的数据值。rvalue是一个不能被赋值的表达式,这意味着rvalue可以出现在赋值的右边,但不能出现在左边。

变量是lvalues,要在赋值的左边看。然而,数字字元是r值,所以不能被赋值,也不能出现在赋值的左侧。

结论

变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。

大写和小写字母是不同的,因为Go是一种区分大小写的语言。

Go中的var就这样了。