Golang 从数组中移除给定元素
在这个教程中,我们将通过简单的for循环方法来学习如何从数组中移除一个元素。这种方法的逻辑是创建一个新的数组,并且不将要删除的特定索引元素添加到新的数组中。让我们通过不同的示例来执行它。
从主函数中删除数组元素
在此方法中,我们将在main函数中执行整个程序。将创建一个原始数组和一个新数组,用于执行从数组中删除元素的操作。让我们来看看如何运用这种方法来解决这个问题。
步骤
步骤1 − 在程序中声明主包并导入fmt包。
步骤2 − 创建一个名为main的函数,并在函数内部创建一个数组,并填充数组的值,其中一个将被删除。
步骤3 - 创建一个变量i,并将要删除的索引赋值给该变量。
步骤4 - 检查条件,如果索引小于0或者值大于数组的长度,则打印索引越界。
步骤5 - 如果条件不满足,则创建一个名为originalarr的数组和一个变量j,进一步在数组的范围内运行一个循环,并检查当变量i的值不等于索引值时,将旧数组的值分配给新数组,并使j++。
步骤6 - 当值相同时,这意味着索引将被删除,根据算法,该索引值将不会添加到数组中,循环继续。
步骤7 - 循环终止后,我们重新修剪数组以删除额外的索引,并使用fmt.Println()函数将新数组打印在控制台上。
示例
使用主要方法的Golang程序从数组中移除一个元素
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 - 在程序中声明主要包并导入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]
结论
我们使用两种方法执行了从数组中删除一个元素的程序。在第一种方法中,我们使用了主要的方法来删除元素,在第二种方法中,我们使用了外部方法,其中数组通过主要函数作为参数传递。两种情况下都获得了类似的输出。因此,程序执行成功。