首頁  >  文章  >  後端開發  >  刪除元素方法在 Golang 中不起作用

刪除元素方法在 Golang 中不起作用

WBOY
WBOY轉載
2024-02-09 09:33:181057瀏覽

删除元素方法在 Golang 中不起作用

php小編香蕉將為大家介紹在Golang中刪除元素的方法。在Golang中,刪除元素的方法並不像其他程式語言那樣直接,但我們可以透過一些技巧來實現。在本文中,我們將探討幾種常用的方法,協助您在Golang中輕鬆刪除元素,提升程式效率。無論您是初學者還是有經驗的開發者,這些方法都將對您有所幫助。讓我們一起來了解吧!

問題內容

我有一個簡單的程式碼,用於從切片中刪除元素:

package main

import "fmt"

func main() {
    values := []string{"1", "2", "3", "4", "5"}
    valuesresult := removeelementbyindex(values2, 0)
    fmt.printf("%v - %v\n", values, valuesresult)
}

func removeelementbyindex[t interface{}](a []t, i int) []t {
    return append(a[:i], a[i+1:]...)
}

但是輸出是

[2 3 4 5 5] - [2 3 4 5]

由於某種原因 values 正在改變,但我沒有在我的方法中改變它(我猜)。請幫我解決這個問題

解決方法

您確實更改了原始切片。如果附加操作的結果適合切片的容量,則 append 操作將使用原始切片。

如果您需要原始切片不變:

func removeElementByIndex[T interface{}](a []T, i int) []T {
    result := make([]T, len(a)-1)
    copy(result,a[:i])
    copy(result[i:],a[i+1:])
    return result
}

以上是刪除元素方法在 Golang 中不起作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除