go语言 匿名变量

我们在使用传统的强类型语言编程时,经常会出现这种情况,即在调用函数时为了获取一个值,却因为该函数返回多个值而不得不定义一堆没用的变量。在Go中这种情况可以通过结合使用多重返回和匿名变量来避免这种丑陋的写法,让代码看起来更加优雅。

假设GetName()函数的定义如下,它返回3个值,分别为firstName、lastName和nickName:

func GetName() (firstName, lastName, nickName string) {
    return "May", "Chan", "Chibi Maruko"
}

若只想获得nickName,则函数调用语句可以用如下方式编写:

_, _, nickName := GetName()

这种用法可以让代码非常清晰,基本上屏蔽掉了可能混淆代码阅读者视线的内容,从而大幅降低沟通的复杂度和代码维护的难度。

时间: 2024-10-13 01:52:13

go语言 匿名变量的相关文章

OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围

OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)   所有变量和函数在使用前必须声明.变量和函数名是标识符. 没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符.变量在声明的时候首先要标明类型,后边可以跟多个变量,之间用逗号隔开.很多情况下,变量在声明的时候可以使用等号“=”进行初始化. 用户定义类型可以使用struct,在结构体中所有变量类型都必须是OpenGL ES着色器语言定义的关键字.OpenGL ES着色语言是类型安全的,因此不支持隐式类型转换.

Go语言 基础 变量和常量

变量的初始化 Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作.每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0. 字符串变量的默认值为空字符串. 布尔型变量默认为false. 切片.函数.指针变量的默认为nil. 当然我们也可在声明变量的时候为其指定初始值.变量初始化的标准格式如下: var 变量名 类型 = 表达式 变量与常量 标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函数名等等. Go语言中标识

Go语言(一) 变量和常量

变量和常量是编程中必不可少的部分,也是很好理解的一部分. 标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函数名等等. Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头. 举几个例子:abc, _, _123, a123. 关键字 关键字是指编程语言中预先定义好的具有特殊含义的标识符. 关键字和保留字都不建议用作变量名. Go语言中有25个关键字: 1 break default func interface select 2

Go 语言基础——变量常量的定义

go语言不支持隐式类型转换,别名和原有类型也不能进行隐式类型转换 go语言不支持隐式转换 变量 变量声明 var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { //定义结构体(Java中的实体类,自定义类型) f int } var v6 *int // 指针 var v7 map[string] int // map,key为string类型,value为int类型 var v8 f

变量——声明,初始化,匿名变量,作用域

1.变量声明 1)标准格式: var 变量名 变量类型 当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等.所有的内存在 Go 中都是经过初始化的. 2)批量格式 var (变量名1 变量类型1变量名2 变量类型2变量名3 变量类型3) 3)简短格式 变量名 := 表达式 简短格式的限制:定义变量,同时显式初始化.不能提供数据类型.只能用在函数内部. 注意: 在单个短变量声明和赋值中,由

E 01 Golang语言之变量和常量

标识符与关键字 Ⅰ.标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函数名等等. Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头. 举几个例子:abc, _, _123, a123. Ⅱ.关键字 关键字是指编程语言中预先定义好的具有特殊含义的标识符. 关键字和保留字都不建议用作变量名. Go语言中有25个关键字: break default func interface select case defer go map struct chan

C语言之变量类型和存储方式

变量可以分为全局变量.静态全局变量.局部变量和静态局部变量 变量的声明有两种情况: 1.一种是需要建立存储空间的(定义性声明).例如int a 在生命的时候就已经建立了存储空间. 2.另一种是不需要建立存储空间的(引用性声明).例如extern int a 其中变量a是在别的文件中定义的. 内存区域的划分: 1.栈区:由编译器自动分配和释放的内存区域,用于存放函数的参数值.局部变量等. 2.堆区:程序员向系统申请或释放. 3.全局区:用来保存全局变量和静态变量. 4.文字常量区:用来保存常量字符

R语言:变量名称和字符串的转换

R语言:变量名称和字符串的转换 2014-06-23 14:45:27 在R语言中,经常会遇到变量名称和字符串相互转换的问题.比如说,进行1000次循环运算,并将运算结果存储在1000个变量中,如x_1, x_2, ... , x_1000.这时候可以使用assign()函数,示例如下: > a错误: 找不到对象'a'> assign('a', 1)> a[1] 1 上面的例子将字符'a'转变为变量a,并将其赋值为1 . 相反,如果我们想遍历一个变量序列,并对其中的每一个变量都进行操作,

OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)

OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章) 4.5精度和精度修饰符 4.5.1范围和精度 用于存储和展示浮点数.整数变量的范围和精度依赖于数值的源(varying,uniform,纹理查找,等等),是不是顶点或者片元着色器,还有其他一些底层实现的细节.最低存储需要通过精度修饰符来声明.典型地,精度操作必须要保留变量包含的精度存储.仅有的例外是需要大量复杂计算的内建函数,如atan(),返回值的精度低于声明的精度. 强烈建议顶点语言提供一种匹配IEEE单精度浮点数或更高精