簡體   English   中英

如何使用指向該切片的指針獲取切片項目

[英]How to get slice item using pointer to that slice

有一個整數切片和一個函數,該函數接受指向切片的指針作為參數。

mainSlice := []int{0,8,5,4,6,9,7,1,2,3,6,4,5,7}
doSmthWithSlice(mainSlice)

有什么方法可以使用指向切片的指針來獲取切片項目,但又無需將指針指向的值復制到新切片中?

func doSmthWithSlice(slcPtr *[]int) {
    *slcPtr[3] = 777 // this does NOT works, because *[]int does not support indexing

    // Don't want to implement it 
    // like this
    newSlice := *slcPtr
    newSlice[3] = 777
    *slcPtr = newSlice
}

謝謝
PS
很抱歉問這種原始問題。 我是新手

操作順序很重要:您需要首先取消引用指針,然后對其進行索引。

func doSmthWithSlice(slPtr *[]int) {
    (*slcPtr)[3] = 777 
}

沒有括號,索引運算符將應用於切片指針; 無效的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM