Go语言程序从数组中获取前 N 个元素
在本教程中,我们将编写一个 Go 语言程序,从数组中获取指定数量的前几个元素。我们可以使用 Go 语言内置函数或使用 for 循环来实现。第一种方法在功能上更高效,但我们将在本程序中讨论这两种方法。
方法 1:使用内部函数从整数数组中获取元素
在本方法中,我们将编写一个 Go 语言程序,使用 append() 库函数从数组中获取指定数量的前几个元素。
语法
func make ([] type, size, capacity)
Go 语言中的 **make** 函数用于创建数组/映射,它接受要创建的变量类型、大小和容量作为参数。
func append(slice, element_1, element_2…, element_N) []T
append 函数用于向数组切片添加值。它接受多个参数。第一个参数是要添加值的数组,后跟要添加的值。然后,该函数返回包含所有值的最终数组切片。
算法
**步骤 1** − 首先,我们需要导入 fmt 包。
**步骤 2** − 然后,创建一个函数来获取给定索引处的元素。此函数接受数组作为参数并返回最终数组。
**步骤 3** − 现在,我们需要启动 main() 函数。
**步骤 4** − 在这里,使用 make() 函数初始化一个整数数组,并将值追加到数组中。然后在屏幕上打印数组。
**步骤 5** − 在一个变量中存储需要获取元素之前的索引。在另一个变量中存储该索引处的元素。
**步骤 6** − 现在,通过将数组和索引作为参数传递给函数,调用 delFirstElem() 函数,并将获得的数组存储起来。
**步骤 7** − 在屏幕上打印最终数组。
示例
使用内部函数从整数数组中获取指定数量的前几个元素的 Go 语言程序
package main import "fmt" // function to get the first element from the array func getFirstElem(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 elem := array[index] result := getFirstElem(array, index) fmt.Println() fmt.Println("The provided index is:", index) fmt.Println("Array obtained before the element", elem, "is:\n", result) }
输出
The given array is: [1 2 3 4 5] The provided index is: 2 Array obtained before the element 3 is: [1 2]
方法 2:使用用户定义函数获取数组中的元素
在此示例中,我们将编写一个 Go 语言程序,在程序的 main() 部分从数组中获取指定数量的前几个元素。
算法
**步骤 1** − 首先,我们需要导入 fmt 包。
**步骤 2** − 现在,我们需要启动 main() 函数。
**步骤 3** − 在这里,使用 make() 函数初始化一个整数数组,并将值追加到数组中。然后使用 fmt.Println() 函数在屏幕上打印数组。
**步骤 4** − 在一个变量中存储需要获取元素之前的索引。在另一个变量中存储该索引处的元素。
**步骤 5** − 现在,要重新切片数组,请使用 : 运算符并将提供的索引之前的元素存储在一个变量中。
**步骤 6** − 接下来,在屏幕上打印最终数组。
示例
使用用户定义函数从数组中获取指定数量的前几个元素。
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 = 3 elem := array[index] result := array[:index] fmt.Println() fmt.Println("The provided index is:", index) fmt.Println("Array obtained after getting values before", elem, "is:\n", result) }
输出
The given array is: [11 20 13 44 56] The provided index is: 3 Array obtained after getting values before 44 is: [11 20 13]
方法 3:使用 append() 函数从整数数组中获取元素
在本方法中,我们将使用 for 循环在 Go 编程语言中获取数组开头特定索引之前的元素。
算法
**步骤 1** − 首先,我们需要导入 fmt 包。
**步骤 2** − 现在,我们需要启动 main() 函数。
**步骤 3** − 在这里,使用 make() 函数初始化一个整数数组,并将值追加到数组中。接下来,在屏幕上打印数组。
**步骤 4** − 将需要打印元素之前的索引和该索引处的值存储在变量中。
**步骤 5** − 现在,使用 for 循环遍历数组,并将提供的索引之前位置的元素存储在新数组中。
**步骤 6** − 接下来,在屏幕上打印最终数组。
示例
使用 append() 函数从整数数组中获取指定数量的前几个元素的 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 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 getting elements before", elem, "is:\n", result) }
输出
The given array is: [11 20 13 44 56 96 54 97] The provided index is: 3 Array obtained after getting elements before 44 is: [11 20 13]
结论
我们已经成功编译并执行了一个 Go 语言程序,用于获取数组中指定数量的前几个元素,并附带示例。