2 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
簡而言之,恐怕不是。一般來說,Go 不太擅長“壓縮”表達(dá)式,因?yàn)樗祷囟鄠€(gè)返回值(想想錯(cuò)誤)的方式,不能作為一個(gè)組傳遞。這使得很難按照 C# 中的 Linq 或 JavaScript 中的 Lodash 實(shí)現(xiàn)鏈?zhǔn)胶瘮?shù)表達(dá)式。您總是被迫分別處理不同的返回值。它使 Go 編寫起來相當(dāng)費(fèi)力,但也非常明確,這就是意圖 - 避免錯(cuò)誤。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
這有效:
package main
import "fmt"
func obtain2Values() (int, int) {
return 1, 2
}
func process3Values(a, b int, c string){
fmt.Printf("%v %v %v\n", a, b, c)
}
func main() {
a, b := obtain2Values()
process3Values(a, b,":)")
// process3Values(obtain2Values(), ":)")
}
process3Values(obtain2Values(), ":)") 不起作用:
./prog.go:16:16: not enough arguments in call to process3Values
./prog.go:16:30: multiple-value obtain2Values() in single-value context
- 2 回答
- 0 關(guān)注
- 114 瀏覽
添加回答
舉報(bào)