golang 函數(shù)間數(shù)組傳值

問題:

eg:

func sliceModify(slice []int) {
    // slice[0] = 88
    slice = append(slice, 6)
}
func main() {
    slice := []int{1, 2, 3, 4, 5}
    sliceModify(slice)
    fmt.Println(slice)
}

out: [1 2 3 4 5]

雖然說數(shù)組切片在函數(shù)傳遞時是按照引用的語義傳遞的,比如說在 sliceModify 函數(shù)里面 slice[0] = 88,在方法調(diào)用的上下文中,調(diào)用函數(shù)對slice引用的改表是看得見的。

但是在對slice進(jìn)行append操作的時候,返回的是新的引用,并非原始引用。

解決:

傳遞指針的指針

eg:


func sliceModify(slice *[]int) {
    *slice = append(*slice, 6)
}
func main() {
    slice := []int{1, 2, 3, 4, 5}
    sliceModify(&slice)
    fmt.Println(slice)
}

out: [1 2 3 4 5 6]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,270評論 0 4
  • Go語言做Web編程非常方便,并且在開發(fā)效率和程序運(yùn)行效率方面都非常優(yōu)秀。相比于Java,其最大的優(yōu)勢就是簡便易用...
    暗黑破壞球嘿哈閱讀 9,066評論 6 66
  • “宮本璇靜!我要被你害死了!”剛剛逃脫慕容琳魔爪的加藤夜寒氣喘吁吁的抱怨道。 “寒哥哥,如果你想再跑一次的話,我可...
    慕櫻吶閱讀 382評論 0 0
  • 萬維剛老師的新書《高手》中,提到了一個哲學(xué)思想“斯多葛控制二分法,”這是斯多葛派哲學(xué)中最重要的一個心法。 我們應(yīng)該...
    L悶兒閱讀 2,310評論 0 1
  • 太陽好大今天。 下午逛了超市,晚上跑了4公里,換了鞋子,跑得不是特別舒服,一雙合適的鞋子是多么重要。 今天老是在想...
    麗麗我我閱讀 97評論 0 0