Golang 从数组中获取最后给定数量的元素
在本教程中,我们将编写一个Go语言程序,从数组中删除最后给定数量的元素。我们可以通过使用Go语言中的内置函数,或使用 for 循环来实现。第一种方法比第二种方法更具功能性,但我们将在本程序中讨论这两种方法。
方法1:使用Append()从整数数组中删除最后给定数量的元素
在此方法中,我们将编写一个Go语言程序,通过使用append()库函数从数组中删除最后给定的数量的元素。该代码的时间复杂度是线性的,即 O(n) 。
语法
func make ([] type, size, capacity)
The make function in go语言用于创建一个数组/映射,它接受要创建的变量的类型、大小和容量作为参数
func append(slice, element_1, element_2…, element_N) []T
append函数用于向数组切片添加值。它接受多个参数。第一个参数是我们想要添加值的数组,后面是要添加的值。函数然后返回包含所有值的最终数组切片。
步骤
步骤1 - 首先,我们需要导入fmt包。
步骤2 - 然后,创建一个函数来删除给定索引处的元素。此函数接受数组作为参数,并返回最终数组。
步骤3 - 现在,我们需要开始main()函数。
步骤4 - 在这里,使用make()函数初始化一个整型数组,并向数组添加值。然后,在屏幕上打印数组。
步骤5 - 将要删除元素之后的索引存储在一个变量中。将该索引处的元素存储在一个变量中。
步骤6 - 现在,通过将数组和索引作为参数传递给delLastElem()函数,并存储得到的数组。
步骤7 - 在屏幕上打印最终的数组。
示例
使用内部函数从整型数组中删除最后给定数量的项目的Golang程序
package main
import "fmt"
// function to remove the last element from the array
func delLastElem(array []int, index int) []int {
return append(array[:index])
}
func main() {
// initializing an array
array := make([]int, 0, 5)
array = append(array, 1, 2, 3, 4, 5)
fmt.Println("The given array is:", array)
var index int = 2
// getting element at index
elem := array[index]
result := delLastElem(array, index)
fmt.Println()
fmt.Println("The provided index is:", index)
fmt.Println("Array obtained after deleting elements after ", elem, "is:\n", result)
}
输出
The given array is: [1 2 3 4 5]
The provided index is: 2
Array obtained after deleting elements after 3 is:
[1 2]
方法2:Go语言程序-在主函数中删除数组中的最后给定元素
在这个方法中,我们将编写一个Go语言程序,在程序的main()部分中从数组中删除最后给定的元素。
步骤
步骤1 - 首先,我们需要导入fmt包。
步骤2 - 现在,我们需要开始main()函数。
步骤3 - 在这里,使用make()函数初始化一个整数数组,并通过追加值到数组中。然后,使用fmt.Println()函数将数组打印在屏幕上。
步骤4 - 将应删除元素之后的索引存储在一个变量中。将该索引处的元素存储在一个变量中。
步骤5 - 现在,使用:运算符重新切片数组,并将提供索引之前的值存储在一个变量中。
步骤6 - 进一步,将最终的数组打印在屏幕上。
示例
Golang程序-从数组中删除最后给定的元素
package main
import "fmt"
func main() {
// initializing an array
array := make([]int, 0, 5)
array = append(array, 11, 20, 13, 44, 56)
fmt.Println("The given array is:", array)
var index int = 2
elem := array[index]
result := array[:index]
fmt.Println()
fmt.Println("The provided index is:", index)
fmt.Println("Array obtained after deleting elements after", elem, "is:\n", result)
}
输出
The given array is: [11 20 13 44 56]
The provided index is: 2
Array obtained after deleting elements after 13 is:
[11 20]
方法3:使用for循环从数组中删除最后几个给定的项
在这个方法中,我们将使用for循环来从go编程语言中的最后一个特定索引后删除值。由于我们使用for循环,所以该方法的时间复杂度将为 O(n 2)。
步骤
步骤1 - 首先,我们需要导入fmt包。
步骤2 - 现在,我们需要开始main()函数。
步骤3 - 在这里,使用make()函数初始化一个整数数组并向数组中追加值。接着将数组打印到屏幕上。
步骤4 - 将索引和该索引处的值存储在一个变量中,此后应删除元素。
步骤5 - 现在,使用for循环遍历数组,并将索引之前出现的元素存储在新数组中。
步骤6 - 进一步,将最终的数组打印到屏幕上。
示例
使用for循环从整数数组中删除最后给定数量的项的go语言程序。
package main
import "fmt"
func main() {
array := make([]int, 0, 8)
var result []int
array = append(array, 11, 20, 13, 44, 56, 96, 54, 97)
fmt.Println("The given array is:", array)
// getting the last index
var index int = 3
// re-slicing the array
for i := 0; i < len(array); i++ {
if i < index {
result = append(result, array[i])
}
}
elem := array[index]
fmt.Println()
fmt.Println("The provided index is:", index)
fmt.Println("Array obtained after deleting elements after", elem, "is:\n", result)
}
输出
The given array is: [11 20 13 44 56 96 54 97]
The provided index is: 3
Array obtained after deleting elements after 44 is:
[11 20 13]
结论
我们已成功编译并执行了一个使用Go语言编写的程序,可以删除数组中最后给定数量的项,并附上了示例。