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 语言程序,用于根据指定的索引范围从数组中获取子数组。我们在这里使用了两个程序。在第一个程序中,我们使用用户定义的外部函数,而在第二个程序中,我们使用内部库函数来实现结果。

更新于: 2023年2月10日

1K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告