English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
var关键字在Golang用于创建的变量具有一个适当的名称和初始值的特定类型的。在使用var关键字声明变量时,初始化是可选的,我们将在本文后面讨论。
语法:
var identifier type = expression
//这里w3codebox1是标识符 //或称变量名,是int类型,并为分配值200 var w3codebox1 int = 200
如您所知,Go是一种静态类型的语言,但是它仍然提供了一种在声明变量的同时省略数据类型声明的功能,如以下语法所示。这通常称为类型推断。
语法:
var identifier = initialValue
var w3codebox1 = 200
var关键字还用于在一行中声明多个变量。您还可以为变量提供初始值,如下所示:
使用var关键字以及类型声明多个变量:
var w3codebox1, w3codebox2, w3codebox3, w3codebox4 int
使用var关键字声明多个变量以及类型和初始值:
var w3codebox1, w3codebox2, w3codebox3, w3codebox4 int = 10, 20, 30, 40
注意:
您还可以使用类型推断(上面讨论过),该推断可使编译器知道该类型,即可以在声明多个变量的同时删除该类型。
var w3codebox1, w3codebox2, w3codebox3, w3codebox4 = 10, 20, 30.30, true
您还可以使用多行使用var关键字声明和初始化不同类型的值,如下所示:
var( w3codebox1 = 100 w3codebox2 = 200.57 w3codebox3 bool w3codebox4 string = "zh.oldtoolbag.com" )
在声明期间使用类型时,只允许声明多个相同类型的变量。但是在声明期间删除类型,您可以声明多个不同类型的变量。
//使用var关键字声明变量 package main import "fmt" func main() { //声明多个相同类型的变量并初始化 //与类型一起在单行中 var w3codebox1, w3codebox2, w3codebox3 int = 232, 784, 854 //声明多个不同类型的变量并初始化 //在单行中不指定任何类型 var w3codebox4, w3codebox5, w3codebox6 = 100, "GFG", 7896.46 fmt.Printf("w3codebox1的值为 : %d\n", w3codebox1) fmt.Printf("w3codebox2的值为 : %d\n", w3codebox2) fmt.Printf("w3codebox3的值为 : %d\n", w3codebox3) fmt.Printf("w3codebox4的值为 : %d\n", w3codebox4) fmt.Printf("w3codebox5的值为 : %s\n", w3codebox5) fmt.Printf("w3codebox6的值为 : %f", w3codebox6) }
输出:
w3codebox1的值为 : 232 w3codebox2的值为 : 784 w3codebox3的值为 : 854 w3codebox4的值为 : 100 w3codebox5的值为 : GFG w3codebox6的值为 : 7896.460000
var关键字的要点:
在使用var关键字声明变量期间,可以省略 type 或= 表达式,但不能同时省略。如果这样做,编译器将抛出一个错误。。
如果删除了表达式,则默认情况下,变量将包含数字的零值和布尔值false的代表字符串“”,而nil则包含接口和引用类型。 因此,在Go语言中没有这样的未初始化变量的概念。
// var关键字的概念 package main import "fmt" func main() { //声明变量但不初始化 var w3codebox1 int var w3codebox2 string var w3codebox3 float64 var w3codebox4 bool //显示0值变量 fmt.Printf("w3codebox1的值是 : %d\n", w3codebox1) fmt.Printf("w3codebox2的值是 : %s\n", w3codebox2) fmt.Printf("w3codebox3的值是 : %f\n", w3codebox3) fmt.Printf("w3codebox4的值是 : %t", w3codebox4) }
输出:
w3codebox1的值是 : 0 w3codebox2的值是 : w3codebox3的值是 : 0.000000 w3codebox4的值是 : false