本文参加了思否技术征文,欢送正在浏览的你也退出。
前言
特地阐明: 本文只适宜老手学习
这篇文章带咱们入门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语言定义变量的概念和形式,想来还是值得的,非常适合老手学习,哈哈哈。