Golang 从数组中移除给定元素

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]

结论

我们使用两种方法执行了从数组中删除一个元素的程序。在第一种方法中,我们使用了主要的方法来删除元素,在第二种方法中,我们使用了外部方法,其中数组通过主要函数作为参数传递。两种情况下都获得了类似的输出。因此,程序执行成功。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程