本文参加了思否技术征文,欢送正在浏览的你也退出。

前言

特地阐明: 本文只适宜老手学习

这篇文章带咱们入门go语言的定义变量的形式,其实和javascript很类似,所以特意总结在此。

在go语言中,也有变量和常量两种,首先咱们来看变量的定义,定义变量咱们分为定义单个变量和多个变量。

定义单个变量

在定义单个变量中,咱们通过var关键字来定义一个变量,其后跟变量名和变量类型,其中变量类型能够省略,语法结构如下:

var <变量名> <变量类型>

例如:

var name string

以上代码示意定义一个变量名为name,变量类型为字符串的变量,留神go语言定义变量的类型始终是在最初。

能够看到,和js定义变量区别不大,只不过是多了一个类型申明,其中这个类型申明还能够省略。

定义多个变量

在go语言中,咱们通过,操作符来定义多个变量,这里定义多个变量也分为两种状况,一种是多个变量都是同一类型,另外一种则是不同类型的多个变量,咱们先来看第一种。

定义雷同类型的多个变量

和定义单个变量一样,也是应用var关键字来定义,并且通过,来分隔,语法结构如下:

var <变量名1>,<变量名2>,<变量名3>,... <变量类型>

如:

var name1,name2,name3 string

以上定义了name1,name2,name3 3个变量,变量的类型都是string。

能够看到以上是定义雷同类型的多个变量,那么咱们应该如何定义不同类型的多个变量呢?

很简略,用()包裹起来,而后也是应用,分隔,在每个变量名前面紧跟变量类型即可,语法如下:

var (<变量名1> <变量1类型>,<变量名2> <变量2类型>...)

例如以下代码:

var (name string,age int)

是不是很简略?

变量的初始化

在go语言中,定义了变量,同样也会有初始化的操作,也就是说给变量初始化值,也是通过=操作符后跟值即可。语法结构如下:

var <变量名> <变量类型>? = <变量值>

例如:

var name string = "eveningwater"

变量类型的省略

其实咱们在初始化变量的时候能够省略变量类型,而后go编译器会在编译的时候帮咱们主动推导变量类型,这几乎就是在写javascript啊,这也是我在以上语法变量类型那一块中标注?的起因,就示意能够写能够不写。例如以上示例代码就能够写成:

var name = "eveningwater"

如此看来,咱们定义多个变量同样也能够省略变量类型,如:

var (name,age) = "eveningwater",26

又或者是:

var name1,name2  = "eveningwater","xxx"

var关键字的省略(简短申明)

go语言的定义变量名的关键字var也能够省略,这也是我没有想到的,如下所示:

name1,name2 := "eveningwater","xxx"

感觉挺神奇的,是吧!go把这种省略了var和type的申明叫做简短申明。这样一来咱们就能够在定义变量的时候用这个":="来定义变量了,不,你想多了,应用这种形式来定义变量是有限度的,那就是这种形式只可能作用在函数外部,如果咱们要定义全局变量的话,还是要老老实实的写var关键字。

全局变量与局部变量

通过以上的阐明,咱们晓得了定义全局变量和定义局部变量的形式,如下:

var a string = "hello" //全局变量func test() {    b := " world" //局部变量    c := a + b    fmt.Printf("%s \n", c)}

特地的变量名

go语言有个很非凡的变量名,那就是下划线"_",为什么说它非凡呢,因为定义它的值都会被抛弃,没错,就是抛弃,例如:

_,num = 35,34

其中_变量值为35将会被抛弃,最初就只剩下值为34的num变量了,感觉这种设计也是挺有意思的。

未应用变量的限度

go语言在编译阶段会对申明但未应用变量报错,比方以下代码就会报错: 申明了i变量但并未应用。

package mainfunc main(){    //编译阶段报错    var i int}

常量

常量其实也就是在程序编译阶段定下来的值吗,无奈被批改,在go语言中常量也能够被定义成数值,布尔值或者是字符串等类型。它的语法结构如下:

const variableName = value;

例如:

const num int = 10;

其中常量的类型如果须要也能够加上。

以上就是本文内容了,感激大家观看,看完本文,想来应该要不了几分钟,几分钟就把握了go语言定义变量的概念和形式,想来还是值得的,非常适合老手学习,哈哈哈。