Golang程序 从数组中删除一个项目而不使用库函数
在go语言中,数组被定义为用于在连续的内存位置存储元素的数据结构。数组允许我们在恒定时间内搜索和存储元素。数组使用索引来存储元素,从0开始到n – 1,其中n是数组的长度。
方法1:使用外部用户定义的函数
下面的方法说明了我们如何使用一个外部函数从整数阵列中删除一个特定的整数元素。
算法
- 第1步– 导入fmt包。
-
第2步– 定义一个名为removeOccurrence()的函数。
-
第 3步 – 在这个函数中,我们要检查数组的当前元素是否等于我们想删除的值。
-
第4步 – 如果不是,那么我们将把这个元素储存在同一个数组中,否则就忽略这个元素,并重复这个过程,直到整个数组被迭代。
-
第5步 – 一旦每个元素都被检查过,我们需要返回最终的数组作为结果。
-
第6步 – 启动main()函数。初始化一个数组并给它赋值。
-
第 7步 – 在屏幕上打印数组。
-
第 8步- 调用removeOccurrence()函数,将数组和要删除的元素作为参数传递给它。
-
第 9步– 将函数得到的结果存储在一个叫做output的变量中。
-
第 10步, 使用fmt.Println()函数在屏幕上打印出最终结果。
例子
在下面的代码中,我们在外部使用了一个用户定义的函数来从整数数组中删除一个项目
package main
import "fmt"
func removeOccurrence(nums [8]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 := [8]int{11, 21, 32, 41, 54, 79, 83, 47}
fmt.Println("The first array Arr1 is:", arr1)
fmt.Println()
output := removeOccurrence(arr1, 41)
fmt.Println("The array obtained after removing the element 41 is:", output)
}
输出
The first array Arr1 is: [11 21 32 41 54 79 83 47]
The array obtained after removing the element 41 is: [11 21 32 54 79 83 47]
方法2:使用单个函数
在这个方法中,我们将看到使用2个Go编程的例子从数组中删除一个项目的两种不同技术。
算法
- 第1步– 导入fmt包。
-
第2步 – 启动main()函数。初始化一个字符串数组并为其赋值。
-
第 3步 – 在屏幕上打印该数组。
-
第4步 – 在一个新的变量中存储要删除的值,并使用for循环和range函数在数组上进行迭代。
-
第 5步 – 如果当前元素不等于要删除的值,那么将该值更新到数组中,继续循环,直到整个数组被迭代。
-
第6步 – 现在,将获得的新数组复制到一个新的数组中,并使用fmt.Println()函数在屏幕上打印最终获得的数组。
例子
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]
例2
package main
import "fmt"
func main() {
arr := []int{11, 21, 32, 41, 54, 79, 83, 47}
fmt.Println("The given array is:", arr)
fmt.Println()
var val int = 32
var j int = 0
fmt.Println("The value to be removed is:", val)
var res []int
for i := 0; i < len(arr); i++ {
if arr[i] != val {
arr[j] = arr[i]
j++
}
}
res = arr[:j]
fmt.Println("The array obtained after removing the element", val, "is:", res)
}
输出
The given array is: [11 21 32 41 54 79 83 47]
The value to be removed is: 32
The array obtained after removing the element 32 is: [11 21 41 54 79 83 47]
结论
我们已经成功地编译并执行了一个Go语言程序,从数组中删除了一个特定的元素,并附有实例。在这篇文章中我们使用了三个例子,第一个程序使用一个外部函数从整数数组中删除一个整数值,而第二个程序则暗示了对字符串数组的逻辑。在最后一个例子中,我们展示了如何使用for循环来移除数组中的元素。