2 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
返回一個(gè)函數(shù),該函數(shù)從封閉范圍獲取第一個(gè)值,從參數(shù)獲取第二個(gè)數(shù)字。
func Add(a int) func(int) int {
return func(b int) int {
return a + b
}
}
fmt.Println(Add(3)(5)) // prints 8
這些都不是慣用的。慣用代碼是3 + 5.

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
在 Go 中執(zhí)行此操作的慣用方法是不執(zhí)行此操作。
Go 對(duì)性能和過(guò)程性的強(qiáng)調(diào)意味著像柯里化這樣的功能模式是非常反慣用的。將兩個(gè)數(shù)字相加的唯一慣用方法是:
sum := 5 + 3
您可以使用返回函數(shù)的函數(shù)來(lái)實(shí)現(xiàn)它
func Add(val int) func(int) int {
return func (other int) int {
return val + other
}
}
但你不應(yīng)該。它增加了復(fù)雜性并減慢了您的程序,但沒(méi)有任何好處。
- 2 回答
- 0 關(guān)注
- 99 瀏覽
添加回答
舉報(bào)