Golang程序 从数组中移除给定元素

在本教程中,我们将学习如何使用简单的for循环方法从一个数组中删除一个元素。这种方法背后的逻辑是,创建一个新的数组,并且要移除的特定索引元素不要添加到新的数组中。让我们通过不同的例子来看看如何执行它。

在主函数中从数组中删除元素

在这个方法中,我们将在main函数中执行整个程序。一个原始数组和一个新的数组将被创建,以执行从数组中移除元素的任务。让我们来看看并灌输解决这个问题的方法。

算法

第1步 - 在程序中声明main包和导入fmt包。

第2步 - 创建一个函数main,并在该函数中进一步创建一个数组,在数组中填入需要删除的值。

第 3 步–创建一个变量i,并将其索引分配给要删除的变量。

第4 步 – 检查一个条件,如果索引小于0,或者如果值大于数组的长度,则打印出索引超出范围。

第5步 - 如果条件不满足,则创建一个名为originalarr的数组和变量j,进一步运行一个循环,直到数组的范围,并检查当变量i的值不等于索引值时,将旧数组的值分配给新数组并做j++。

第6步 - 当数值相似时,这意味着要删除索引,根据算法,该索引值将不会被添加到数组中,循环继续。

第7步 - 循环结束后,我们重新切割数组,删除多余的索引,并使用fmt.Println()函数在控制台打印新数组。

例子

Golang程序使用main方法从数组中删除一个元素

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步 - 主函数以数组为参数调用外部函数,之后整个程序运行。

例子

Golang程序使用外部函数的方法从数组中删除一个元素

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]

总结

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