Go语言返回值列表疑问:为何截图第二个圈中存在‘x’?
Go返回值列表里的'x'是什么意思
这个x是命名返回值的变量名,Go里这么写是为了简化返回值的声明和使用:
- 当函数返回多个同类型的值时,可以只在最后一个返回值后面写类型,前面的变量名后省略类型,比如
func demo() (x, y int),这里x和y都是int类型的返回值变量。 - 这些命名变量会在函数启动时自动初始化为对应类型的零值(比如int类型就是0),你在函数内部可以直接给它们赋值,最后只需要写
return就能返回它们的当前值,不用手动写return x, y。 - 要是只给部分返回值命名,比如
func demo() (int, x int)也合法:第一个返回值是匿名的(只能通过接收时的位置来获取),第二个是命名的x,函数里可以直接操作这个变量。
举个实际例子:
func calc() (sum, diff int) { sum = 5 + 3 diff = 5 - 3 return // 直接返回sum和diff的当前值,无需写return sum, diff }
简单说,这个x就是给返回值起的名字,方便你在函数里直接使用它,还能简化return语句。
内容的提问来源于stack exchange,提问作者James Pei
相关产品推荐
相关产品推荐

