Home >Backend Development >Golang >Summarize the two methods of deleting slice elements in golang

Summarize the two methods of deleting slice elements in golang

PHPz
PHPzOriginal
2023-03-30 13:35:242618browse

In golang, we can use the built-in append and copy functions to delete the elements of the slice. These two functions are important components of the slice operation. Two methods of deleting slice elements using append and copy will be introduced below.

Method 1: Use the append function to delete slice elements

The append function has two parameters, the first is the slice to be operated on, and the second is the index of the element to be deleted. Elements can be removed by creating a new slice and adding all elements except the element you want to remove to the new slice. The following is a sample code to implement deletion of slice elements:

func removeIndex(s []int, index int) []int {
    return append(s[:index], s[index+1:]...)
}

The sample code to delete slice elements using this function is as follows:

func main() {
    s := []int{1, 2, 3, 4, 5}
    s = removeIndex(s, 2)
    fmt.Println(s) // 输出 [1 2 4 5]
}

In this example, the index of the element to be deleted is 2, so Call the removeIndex function, passing the index to remove and the slice to operate on. This function returns a new slice containing all elements after the deleted element.

Method 2: Use the copy function to delete slice elements

You can also delete elements by using the copy function to move the elements of the slice to the left. This method moves all elements after the element to be deleted one position to the left, covering the element to be deleted.

func removeIndex2(s []int, index int) []int {
    copy(s[index:], s[index+1:])
    return s[:len(s)-1]
}

The sample code for using this function to delete slice elements is as follows:

func main() {
    s := []int{1, 2, 3, 4, 5}
    s = removeIndex2(s, 2)
    fmt.Println(s) // 输出 [1 2 4 5]
}

Similar to the above sample code, call the removeIndex2 function and pass the index to be deleted and the slice to be operated on. This function returns a new slice containing all elements after the deleted element.

Summary

Deleting slice elements using the built-in append and copy functions are two common ways to delete elements in golang. No matter which method you use, you need to remove the element by creating a new slice and add all elements except the element you want to remove to the new slice. Also, be careful to decrement the slice length by one when using the copy function to avoid index out-of-bounds errors.

The above is the detailed content of Summarize the two methods of deleting slice elements in golang. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn