Go语言如何在接收函数返回值时追加结果同时覆盖错误
结论
你提到的几种合并赋值写法在 Go 语法中完全不被支持,没有办法在一次函数返回值接收操作中,给不同返回值分别使用不同的赋值运算符。
Go 语言的赋值规则明确要求:
- 赋值操作符左侧的变量数量必须和右侧表达式的返回值数量完全匹配
- 同一次赋值操作只能统一使用
=或者:=作为运算符,无法给单个左值分别指定+=、=这类不同的操作逻辑。
推荐实现方案
按照 Go 语言的编码规范,直接拆分两行完成你需要的逻辑即可,这也是业界通用的写法:
- 若结果为字符串/数值类型:
// 先接收返回值 tmp, err := yourFunc() if err != nil { // 错误处理逻辑 } // 再追加到已有变量 allResults += tmp
- 若结果为切片类型:
tmp, err := yourFunc() if err != nil { // 错误处理逻辑 } result = append(result, tmp...)
这种写法语义清晰,所有熟悉 Go 的开发者都能一眼看懂逻辑,临时变量的性能开销完全可以忽略,完全没必要为了省一行代码编写不符合规范、可读性差的代码。
内容的提问来源于stack exchange,提问作者u15p7fgy863eiq5
相关产品推荐
相关产品推荐

