Go语言的多返回值
Go语言革命性地在静态开发语言阵营中率先提供了多返回值功能。这个特性让开发者可以从原来用各种比较别扭的方式返回多个值的痛苦中解脱出来,既不用再区分参数列表中哪几个用于输入,哪几个用于输出,也不用再只为了返回多个值而专门定义一个数据结构。
示例:
func fun1()(a string,b int){
return "hello world",123
}
因为返回值都已经有名字,因此各个返回值也可以用如下方式来在不同的位置进行赋值,从而提供了极大的灵活性:
func fun1()(a string,b int){
a = "hello world"
b = 123
return
}
并不是每一个返回值都必须赋值,没有被明确赋值的返回值将保持默认的空值。而函数的调用相比C/C++语言要简化很多:
a , b = func1()
如果开发者只对该函数其中的某个返回值表示感兴趣的话,也可以直接用下划线作为占位符来忽略其它不相关的返回值。下面的调用表示调用者只希望接受b值,这样可以避免声明完全没用的变量:
_ , b = func1()