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 語言程式,用於根據指定的索引範圍從陣列中獲取子陣列。我們在這裡使用了兩個程式。在第一個程式中,我們使用使用者定義的外部函式,而在第二個程式中,我們使用內部庫函式來實現結果。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP