Go语言程序:从数组中删除指定元素
在本教程中,我们将学习如何使用简单的for循环方法从数组中删除元素。这种方法背后的逻辑是创建一个新数组,并将要删除的特定索引元素不添加到新数组中。让我们看看如何使用不同的示例来执行它。
在主函数中删除数组中的元素
在这种方法中,我们将整个程序在主函数内执行。将创建原始数组和新数组来执行从数组中删除元素的操作。让我们来看一下并掌握解决此问题的方法。
算法
步骤 1 − 在程序中声明 main 包并导入 fmt 包。
步骤 2 − 创建一个 main 函数,并在函数中创建一个数组,并用要从中删除一个元素的值填充该数组。
步骤 3 − 创建一个变量 i 并将要删除的索引赋值给该变量。
步骤 4 − 检查一个条件:如果索引小于 0 或值大于数组长度,则打印索引越界。
步骤 5 − 如果条件不满足,则创建一个名为 originalarr 的数组和变量 j,进一步循环到数组的范围,并检查当变量 i 的值不等于索引值时,将旧数组的值赋值给新数组并执行 j++。
步骤 6 − 当值相似时,这意味着要删除索引,根据算法,该索引值不会添加到数组中,循环继续。
步骤 7 − 循环终止后,我们重新切片数组以删除多余的索引,并使用 fmt.Println() 函数在控制台中打印新数组。
示例
使用主方法从数组中删除元素的 Go 语言程序
package main import ( "fmt" ) func main() { originalarr := [5]string{"Vatsal", "Kartik", "Ritika", "Veronica", "Isha"} //create array fmt.Println("The original array is:", originalarr) i := 3 //index to be deleted fmt.Println("The index to be deleted is:", i) if i < 0 || i >= len(originalarr) { fmt.Println("The given index is out of bounds.") } else { j := 0 for index := range originalarr { //run a loop till end of array if i != index { originalarr[j] = originalarr[index] //assign the old array values to new array j++ } } newarr := originalarr[:j] //reslicing array to remove extra index fmt.Println("The new array after deleting the element is:", newarr) } }
输出
The original array is: [Vatsal Kartik Ritika Veronica Isha] The index to be deleted is: 3 The new array after deleting the element is: [Vatsal Kartik Ritika Isha]
使用用户定义函数从数组中删除元素
在这种方法中,我们将整个程序在外部函数内执行。将创建原始数组和新数组来执行从数组中删除元素的操作。原始数组将作为参数从主函数传递。让我们看看如何解决这个问题。
算法
步骤 1 − 在程序中声明 main 包并导入 fmt 包。
步骤 2 − 创建一个名为 remove_ele 的函数,该函数包含数组作为参数,并在函数中进一步创建一个变量,并将要删除的元素的索引赋值给该变量。
步骤 3 − 检查一个条件:如果索引小于 0 或值大于数组长度,则打印索引越界。
步骤 4 − 如果条件不满足,则创建一个名为 originalarr 的数组和变量 j,进一步循环到数组的范围,并检查当变量 i 的值不等于索引值时,将旧数组的值赋值给新数组并执行 j++。
步骤 5 − 当值相似时,这意味着要删除索引,根据算法,该索引值不会添加到数组中,循环继续。
步骤 6 − 循环终止后,我们重新切片数组以删除多余的索引,并使用 fmt.Println() 函数在控制台中打印新数组。
步骤 7 − 主函数调用带有数组作为参数的外部函数,之后整个程序运行。
示例
使用外部函数方法从数组中删除元素的 Go 语言程序
package main import ( "fmt" ) func remove_ele(originalarr []int) { i := 3 //index to be deleted fmt.Println("The index to be deleted is:", i) if i < 0 || i >= len(originalarr) { fmt.Println("The given index is out of bounds.") } else { j := 0 for index := range originalarr { //run a loop till end of array if i != index { originalarr[j] = originalarr[index] //assign old array value to new array j++ } } newarr := originalarr[:j] //reslicing array to remove extra index fmt.Println("The new array after deleting the element is:", newarr) } } func main() { arr := []int{10, 20, 30, 40, 50} //create array fmt.Println("The array is:", arr) remove_ele(arr) }
输出
The array is: [10 20 30 40 50] The index to be deleted is: 3 The new array after deleting the element is: [10 20 30 50]
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
结论
我们使用两种方法执行了从数组中删除元素的程序。在第一种方法中,我们使用主方法删除元素;在第二种方法中,我们使用外部方法,其中数组作为参数通过主函数传递。两种情况下都获得了相似的输出。因此,程序成功执行。