Go语言程序:使用指定索引范围获取数组的子数组
在本教程中,我们将编写一个 Go 语言程序,使用指定的索引范围从数组中获取子数组。子数组是数组的连续部分,由索引范围指定。例如,给定数组 [1, 2, 3, 4, 5] 和索引范围 [1, 3],则生成的子数组将为 [2, 3, 4]。
语法
func make ([] type, size, capacity)
Go 语言中的 **make** 函数用于创建数组/映射,它接受要创建的变量的类型、大小和容量作为参数。
func append(slice, element_1, element_2…, element_N) []T
append 函数用于向数组切片添加值。它接受多个参数。第一个参数是要向其中添加值的数组,后跟要添加的值。然后,该函数返回包含所有值的数组的最终切片。
方法 1:在 Main 函数外部使用用户定义函数
我们将创建的函数将接受数组以及起始和结束索引作为参数,并返回最终的子数组,我们可以将其存储并在屏幕上打印。
算法
**步骤 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:在 Main 函数内部使用用户定义函数
算法
**步骤 1** - 首先,我们需要导入 fmt 包。
**步骤 2** - 创建 main() 函数。初始化一个数组并向其中存储元素。使用 fmt.Println() 函数在屏幕上打印此数组。
**步骤 3** - 现在,将起始和结束索引存储到变量中,并将这两个变量用作数组变量周围的起始和结束
索引,并将获得的子数组的结果存储到变量中。
**步骤 4** - 最后,使用 fmt.Println() 函数在屏幕上打印获得的子数组。
示例
Go 语言程序:使用内部函数,根据指定的索引范围从整数数组中获取子数组
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 语言程序,用于根据指定的索引范围从数组中获取子数组。我们在这里使用了两个程序。在第一个程序中,我们使用用户定义的外部函数,而在第二个程序中,我们使用内部库函数来实现结果。