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+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.