1 回答

TA貢獻1804條經(jīng)驗 獲得超7個贊
可變參數(shù)函數(shù)將零個或多個值x附加到類型S的s(該類型必須是切片類型),并返回結(jié)果切片,該類型也是S類型。
如果s的容量不足以容納其他值,則append分配一個新的足夠大的切片,使其既適合現(xiàn)有slice元素又適合附加值。因此,返回的切片可以引用不同的基礎數(shù)組。
在函數(shù)調(diào)用中,函數(shù)值和參數(shù)按通常的順序求值。在對它們進行評估之后,調(diào)用的參數(shù)將按值傳遞給函數(shù),并且被調(diào)用函數(shù)開始執(zhí)行。當函數(shù)返回時,該函數(shù)的返回參數(shù)按值傳遞回調(diào)用函數(shù)。
在Go中,參數(shù)按值傳遞。
您需要進行編寫,res = append(res, functionx(i))
以免丟棄res的新值,res引用的是不同的片,并可能引用了不同的基礎數(shù)組。
例如,
package main
import "fmt"
func main() {
res := []int{0, 1}
fmt.Println(res)
_ = append(res, 2) // discard
fmt.Println(res)
res = append(res, 2) // keep
fmt.Println(res)
}
輸出:
[0 1]
[0 1]
[0 1 2]
- 1 回答
- 0 關注
- 260 瀏覽
添加回答
舉報