1、变量声明
Go语言的变量声明方式与C和C++语言有明显的不同。Go语言引入了关键字var,并且Go语言把变量类型放在变量名之后;实例如下:
1)、声明一个变量
//定义一个类型为"int"的变量
var vName int
//定义一个类型为"string"的变量
var vName2 string
//定义一个类型为"int",且大小为10的数组变量
var vName3 [10]int
//定义一个类型为"int"的数组切片
var vName4 []int
//定义一个结构体变量
var vName5 struct{
vn int
}
//定义一个类型为"int"的指针变量
var vName6 *int
//定义一个数据字典,key类型为"string",value类型为"int"
var vName7 map[string]int
通过上面的例子我们可以看看出,变量声明语句不需要使用分号作为结束符,并通过var关键字进行声明;同时Go语言为了避免程序员需要重复写关键字var,用关键字var可将若干个需要声明的变量放置在一起,如下所示:
var (
vName1 int
vName2 string
)
2)、声明多个相同类型的变量
//定义类型都是"int"的三个变量
var vName1,vName2,vName3 int
2、变量初始化
var关键字可以保留,但不再是必要的元素,实例如下:
//定义一个类型为"int"的变量,并对其初始化值
var vName1 int=1
//定义一个变量,但未指定数据类型,并对其初始化值
var vName2 = 1
//定义一个变量,且对其直接初始化值
vName :=1
通过上面三种实例,可以看出第三种用法是最简洁的;这里Go语言引入的另外一个字符(冒号和等号的组合:=),表示声明和初始化。
同时指定类型已不再是必需的,Go语言编译器可以从初始化表达式的值(右侧)推到出该变量应该声明为哪种类型。
对于:=左侧的变量不能同时声明多次,Go语言是不允许的,如下:
i :=1
//这个是不允许的
i :=2
或
var i int
//这个是不允许的
i :=1
因为符号:=表示声明和初始化,所以是不允许的,运行系统后会提示:no new variables no left side of:=
有疑问加站长微信联系(非本文作者)