Golang程序移除数组中所有出现的元素

移除数组中所有出现的元素的Golang程序

在本教程中,我们将看到编写一个go语言程序来删除一个数组中的所有元素的出现。从一个数组中删除出现的元素意味着我们希望从数组中完全删除一个条目。

使用外部函数删除数组中的所有元素的出现

下面的代码说明了我们如何通过使用一个用户定义的函数来删除一个数组中所有出现的元素。

算法

第1步 – 导入fmt包。

第2步 – 定义了一个名为removeOccurrence()的函数。

第3步 – 在这个函数中,我们要检查数组的当前元素是否等于我们想删除的值。

第4步 – 如果不是,那么我们就把这个元素储存在同一个数组中,否则就忽略这个元素,重复这个过程,直到整个数组被迭代。

第5步 – 一旦每个元素都被检查过,我们需要返回最终的数组作为结果。

第6步 – 启动main()函数。初始化一个数组并为其赋值。

第7步 – 在屏幕上打印阵列。

第8步 – 调用removeOccurrence()函数,将数组和要删除的元素作为参数传递给它。

第9步 – 将从函数中得到的结果存储在一个叫做output的变量中。

第10步 – 使用fmt.Println()函数在屏幕上打印出最终结果。

示例 1

package main
import "fmt"
func removeOccurrence(nums [10]int, val int) []int {
   lenArr := len(nums)
   var k int = 0
   for i := 0; i < lenArr; {
      if nums[i] != val {
         nums[k] = nums[i]
         k++
      }
      i++
   }
   return nums[0:k]
}
func main() {
   arr1 := [10]int{1, 2, 3, 4, 4, 5, 4, 7, 8, 4}
   fmt.Println("The first array Arr1 is:", arr1)
   fmt.Println()
   output := removeOccurrence(arr1, 4)
   fmt.Println("The array obtained after removing all the occurrences of element 4 are:", output)
}

输出

The first array Arr1 is: [1 2 3 4 4 5 4 7 8 4]

The array obtained after removing all the occurrences of element 4 are: [1 2 3 5 7 8]

算法

第1步 – 导入fmt包。

第2步 – 定义了一个名为removeOccurrences()的函数。

第3步 – 这个函数使用for循环来遍历数组,并使用if条件来检查数组的当前元素是否等于我们希望删除的元素。

第4步 – 如果条件为真,那么我们需要通过删除值来追加数组。重复这个过程,直到整个数组被迭代完毕。

第5步 – 返回结果数组。

第6步 – 启动main()函数。

第7步 – 初始化一个数组,并为其赋值,进一步使用以下方法在屏幕上打印该数组。

第8步 – 调用removeOccurrences()函数,将数组和我们希望删除的值作为参数传递给它。

第9步 – 将函数返回的值存储在一个单独的变量中,并使用fmt.Println()函数将其打印在屏幕上。

示例 1

现在让我们看看另一个例子,在golang中从一个数组中移除所有出现的元素。

package main
import "fmt"
func removeOccurrence(nums []int, val int) []int {
   var i int
   for {
      if i == len(nums) {
         break
      }
      if nums[i] == val {
         nums = nums[:i+copy(nums[i:], nums[i+1:])]
         i = 0
      }
      i++
   }
   return nums
}
func main() {
   arr1 := []int{1, 2, 3, 4, 4, 5, 4, 7, 8, 4}
   fmt.Println("The first array Arr1 is:", arr1)
   fmt.Println()
   output := removeOccurrence(arr1, 4)
   fmt.Println("The array obtained after removing all the occurrences of element 4 are:", output)
}

输出

The first array Arr1 is: [1 2 3 4 4 5 4 7 8 4]

The array obtained after removing all the occurrences of element 4 are: [1 2 3 5 7 8]

示例 2

现在让我们写一段go语言代码,从一个数组中删除字符串元素。

package main
import (
   "fmt"
)
func main() {
   originalArray := [5]string{"a", "b", "c", "c", "d"}
   fmt.Println("The original array is:", originalArray)
   val := "c"
   j := 0
   for _, v := range originalArray {
      if v != val {
         originalArray[j] = v
         j++
      }
   }
   newArray := originalArray[:j]
   fmt.Println("The new array is:", newArray)
}

输出

The original array is: [a b c c d]
The new array is: [a b d]

结论

我们已经成功地编译并执行了一个go语言程序,从一个数组中移除所有出现的元素,并附有例子。