在本教程中,我们将看到写一个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语言程序,从一个数组中移除所有出现的元素,并附有实例。