Go语言编程(四)之变量
2016-08-05 11:49
211 查看
变量相当于对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。
[b]变量声明[/b]
Go语言中使用var关键字声明变量,而类型信息放在变量名之后。变量声明不需要使用分号作为结束符。示例如下
var关键字的另一种用法是将若干个需要声明的变量放置在一起,如下所示
变量初始化
对于声明变量时需要进行初始化的场景,var关键字可以保留,但不再是必要的元素,如下所示:
注意:出现在:=左侧的变量不应该是已经被声明过的,否则会导致编译错误。如下面的写法:
变量赋值
在Go语法中,变量初始化和变量赋值是两个不同的概念。下面为声明一个变量之后的赋值过程:
Go语言中支持多重赋值
i, j = j, i
匿名变量
我们在使用传统的强类型语言编程时,经常会出现这种情况,即在调用函数时为了获取一个值,却因为该函数返回多个值而不得不定义一堆没用的变量。在Go中这种情况可以通过结合使用多重返回和匿名变量来避免这种丑陋的写法,让代码看起来更加优雅。
假设GetName()函数的定义如下,它返回3个值,分别为firstName、lastName和nickName:
func GetName() (firstName, lastName, nickName string) {
return "May", "Chan", "Chibi Maruko"
}
若只想获得nickName,则函数调用语句可以用如下方式编写:
_, _, nickName := GetName()
这种用法可以让代码非常清晰,基本上屏蔽掉了可能混淆代码阅读者视线的内容,从而大幅降低沟通的复杂度和代码维护的难度。
[b]变量声明[/b]
Go语言中使用var关键字声明变量,而类型信息放在变量名之后。变量声明不需要使用分号作为结束符。示例如下
var v1 int
var v2 string
var v3 [10]int // 数组
var v4 []int // 数组切片
var v5 struct {
f int
}
var v6 *int // 指针
var v7 map[string]int // map, key为string类型value为int类型
var v8 func(a int) int
var关键字的另一种用法是将若干个需要声明的变量放置在一起,如下所示
var {
v1 int
v2 string
}
变量初始化
对于声明变量时需要进行初始化的场景,var关键字可以保留,但不再是必要的元素,如下所示:
var v1 int = 10
var v2 = 10
v3 := 10
注意:出现在:=左侧的变量不应该是已经被声明过的,否则会导致编译错误。如下面的写法:
var i int
i := 2
变量赋值
在Go语法中,变量初始化和变量赋值是两个不同的概念。下面为声明一个变量之后的赋值过程:
var v10 int
v10 = 123
Go语言中支持多重赋值
i, j = j, i
匿名变量
我们在使用传统的强类型语言编程时,经常会出现这种情况,即在调用函数时为了获取一个值,却因为该函数返回多个值而不得不定义一堆没用的变量。在Go中这种情况可以通过结合使用多重返回和匿名变量来避免这种丑陋的写法,让代码看起来更加优雅。
假设GetName()函数的定义如下,它返回3个值,分别为firstName、lastName和nickName:
func GetName() (firstName, lastName, nickName string) {
return "May", "Chan", "Chibi Maruko"
}
若只想获得nickName,则函数调用语句可以用如下方式编写:
_, _, nickName := GetName()
这种用法可以让代码非常清晰,基本上屏蔽掉了可能混淆代码阅读者视线的内容,从而大幅降低沟通的复杂度和代码维护的难度。
相关文章推荐
- 学习go语言编程系列之定义变量
- perl 子程序传递参数不同类型变量 设置
- [叩响C#之门]第2章 变量 2.13 转义字符 @控制符 +运算符
- GCC 环境变量
- C#入门篇-2:什么是变量
- LR中用C语言比较两个字符串变量
- 局部变量 静态变量staic 全局变量
- 不使用中间变量实现两个变量的交换
- 如何查看VS2010中VC++目录中的环境变量
- 变量放的位置,有时细节决定成败,不要被样例迷惑,要思考全面
- 如何通过from语句调用模块的变量名?
- Swift变量名的一种玩法
- Java学习笔记——参数交换(无第三变量)
- Python 类属性变量和全局变量
- Java多线程/并发16、Atomic原子变量和原子操作
- java中的局部变量和全局变量
- Golang从入门到精通(四):Golang变量定义和初始化
- 跟厂长学PHP7内核(七):常见变量类型的基本结构
- 使用Request.ServerVariables获取环境变量
- LoadRunner lr_eval_string() 函数使用及LR中变量、参数的简单使用