Golang程序 从片断中删除一个元素

Golang程序 从片断中删除一个元素

在本教程中,我们将通过各种例子来学习如何从一个片断中删除一个元素。分片是一个元素的序列,就像一个数组。数组是一个固定的元素序列,而分片是一个动态数组,这意味着它的值是不固定的,可以改变。分片比数组更有效、更快速,而且它们是通过引用而不是通过值传递的。让我们通过这个例子来了解情况。

语法

func copy(dst, str[] type) int

Go语言中的 copy 函数用于将一个源数组的值复制到目标数组中,并将复制的元素数量作为结果返回。它需要两个数组作为参数。

func append(slice, element_1, element_2…, element_N) []T

append函数用于向一个数组片断添加值。它需要一些参数。第一个参数是我们希望添加的数组,后面是要添加的值。然后,该函数返回包含所有值的数组的最终片断。

算法

  • 第1步 – 创建一个包main,并在程序中声明fmt(format package)包,其中main产生可执行代码,fmt帮助格式化输入和输出。

  • 第2步 – 创建一个main函数,并在该函数中创建一个分片,使用append函数在分片中添加数值。

  • 第3步– 在控制台中打印分片,以实际了解原始分片的情况。

  • 第4步 – 从主函数中调用函数remove_ele,参数为slice和要删除的索引。

  • 第5步 – 在函数remove_ele中首先检查索引是否出界。

  • 第6步 – 如果索引出界,在控制台打印相同的语句,但如果它没有出界,则使用内置的复制函数将索引后的元素移动一个位置。

  • 第7步 – 然后重新切分,删除使用复制函数时产生的额外索引。

  • 第8步 – 返回比其大小小的片断,这样多余的元素可以被忽略。

  • 第9步 – 输出将使用fmt.println()函数打印,ln指的是下一行。

  • 第10步 – 在这里,需要注意的是,该元素实际上并没有从内存中删除。

  • 第11步 – 它被移位以填补空白,以达到问题的目的。

  • 第12步– 这里的片断再次被重新切分,以删除多余的元素,所做的改变也反映在原始片断中。

例子

在这个方法中,我们将使用内置的复制函数从一个片断中删除一个元素。这里的元素不会被从内存中删除。在它的位置上,新的值将被复制以实际执行所需的操作。输出值将使用fmt.Println()函数打印,这是Golang中的打印语句。

package main
import "fmt"
func main() {

   // Create a slice of integers
   var Slice []int
   Slice = append(Slice, 10) // create slice using append function
   Slice = append(Slice, 20)
   Slice = append(Slice, 30)
   Slice = append(Slice, 40)
   Slice = append(Slice, 50)

   fmt.Println("The slice before removing element is:", Slice) 

   Slice = remove_ele(Slice, 1)
   fmt.Println("The index of element to be removed is:", 1)

   fmt.Println("The slice after removing element is: ")
   fmt.Println(Slice)
}

func remove_ele(Slice []int, index int) []int {
   // check whether the index is out of bounds or not
   if index < 0 || index >= len(Slice) {
      fmt.Println("The index is out of bounds")
   }

   copy(Slice[index:], Slice[index+1:])

   // Reslice the slice to remove the last element
   return Slice[:len(Slice)-1]
}

输出

The slice before removing element is: [10 20 30 40 50]
The index of element to be removed is: 1
The slice after removing element is: 
[10 30 40 50]

结论

我们用一个例子执行了搜索片断元素的程序。在这个特殊的例子中,我们使用了一个自定义函数,在复制函数的帮助下从切片中移除一个元素。这两个例子都给出了类似的输出。因此,该程序成功执行。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程