Golang 使用指定索引范围获取数组子数组
在本教程中,我们将编写一个Go语言程序,使用指定的索引范围从数组中获取子数组。子数组是由索引范围指定的数组的连续部分。例如,给定数组[1, 2, 3, 4, 5]和索引范围[1, 3],结果子数组将是[2, 3, 4]。
语法
func make ([] type, size, capacity)
make 函数在Go语言中用于创建数组/映射,它接受要创建的变量类型、大小和容量作为参数。
func append(slice, element_1, element_2…, element_N) []T
append函数用于向数组片段中添加值。它接受参数的数量。第一个参数是我们希望向其添加值的数组,其后是要添加的值。然后函数返回包含所有值的最终数组片段。
方法1:在主函数外部使用用户定义的函数
我们将创建的函数将接受数组以及开始和结束索引,并返回我们可以存储和打印在屏幕上的最终子数组。
步骤
步骤1 - 首先,我们需要导入fmt包。
步骤2 - 然后,我们需要创建一个函数来获取子数组。该函数接受一个数组作为参数并返回最终的子数组。
步骤3 - 在这个函数内部创建一个空的子数组。使用for循环遍历数组,并将在上面创建的子数组中的元素存储在开始和结束索引之间。
步骤4 - 返回最终的子数组。
步骤5 - 创建main()函数。初始化一个数组并将元素存储到其中。然后使用fmt.Println()函数在屏幕上打印此数组。
步骤6 - 现在,将开始和结束索引存储到一个变量中,并通过将数组和索引作为参数传递给getSubArray()函数来调用该函数。
步骤7 - 现在,将从函数中获得的结果数组存储起来,并在屏幕上打印出来。
示例
在此示例中,我们将使用一个用户定义的函数来使用用户定义的外部函数从数组中获取子数组。
package main
import "fmt"
// function to get a sub array
func getSubArray(arr []int, startIndex int, endIndex int) [3]int {
// Initialize the subarray
subArr := [3]int{}
// Iterate through the specified range of indices
for i := startIndex; i <= endIndex; i++ {
// Add the element at the current index to the subarray
subArr[i-startIndex] = arr[i]
}
return subArr
}
func main() {
// Initialize the array
array := make([]int, 0, 5)
array = append(array, 1, 2, 3, 4, 5)
fmt.Println("The given array is:", array)
// Specify the range of indices
startIndex := 1
endIndex := 3
// Getting the subarray
subArr := getSubArray(array, startIndex, endIndex)
// Print the subarray
fmt.Println("The sub array obtained from the above array from index", startIndex, "to", endIndex, "is:", subArr)
}
输出
The given array is: [1 2 3 4 5]
The sub array obtained from the above array from index 1 to 3 is: [2 3 4]
方法2:在主函数中使用用户定义的函数()
步骤
步骤1 - 首先我们需要导入fmt包。
步骤2 - 创建主函数。初始化一个数组并将元素存储在其中。然后使用fmt.Println()函数将此数组打印在屏幕上。
步骤3 - 现在,将起始和结束索引存储到一个变量中,并使用这两个变量作为开始和结束索引,围绕数组变量。将得到的子数组结果存储在一个变量中。
步骤4 - 最后,使用fmt.Println()函数打印获取到的子数组在屏幕上。
示例
Golang程序,使用内部函数使用指定范围的索引从整数数组中获取子数组。
package main
import "fmt"
func main() {
// Initialize the array
array := make([]int, 0, 5)
array = append(array, 12, 21, 33, 47, 56)
fmt.Println("The given array is:", array)
// Specify the range of indices
startIndex := 0
endIndex := 2
// Get the subarray using the copy function
subArr := array[startIndex : endIndex+1]
// Print the subarray
fmt.Println("The sub array obtained from the above array from index", startIndex, "to", endIndex, "is:", subArr)
}
输出
The given array is: [12 21 33 47 56]
The sub array obtained from the above array from index 0 to 2 is: [12 21 33]
结论
我们已经成功编译并执行了一个go语言程序,用于从一个数组中获取指定范围的子数组。我们在这里使用了两个程序。在第一个程序中,我们使用了一个用户定义的外部函数,而在第二个程序中,我们使用了内部库函数来实现结果。