Go語言程式從陣列中獲取前 N 個元素


在本教程中,我們將編寫一個 Go 語言程式,從陣列中獲取指定數量的前幾個元素。我們可以使用 Go 語言內建函式或使用 for 迴圈來實現。第一種方法在功能上更高效,但我們將在本程式中討論這兩種方法。

方法 1:使用內部函式從整數陣列中獲取元素

在本方法中,我們將編寫一個 Go 語言程式,使用 append() 庫函式從陣列中獲取指定數量的前幾個元素。

語法

func make ([] type, size, capacity)

Go 語言中的 **make** 函式用於建立陣列/對映,它接受要建立的變數型別、大小和容量作為引數。

func append(slice, element_1, element_2…, element_N) []T

append 函式用於向陣列切片新增值。它接受多個引數。第一個引數是要新增值的陣列,後跟要新增的值。然後,該函式返回包含所有值的最終陣列切片。

演算法

**步驟 1** − 首先,我們需要匯入 fmt 包。

**步驟 2** − 然後,建立一個函式來獲取給定索引處的元素。此函式接受陣列作為引數並返回最終陣列。

**步驟 3** − 現在,我們需要啟動 main() 函式。

**步驟 4** − 在這裡,使用 make() 函式初始化一個整數陣列,並將值追加到陣列中。然後在螢幕上列印陣列。

**步驟 5** − 在一個變數中儲存需要獲取元素之前的索引。在另一個變數中儲存該索引處的元素。

**步驟 6** − 現在,透過將陣列和索引作為引數傳遞給函式,呼叫 delFirstElem() 函式,並將獲得的陣列儲存起來。

**步驟 7** − 在螢幕上列印最終陣列。

示例

使用內部函式從整數陣列中獲取指定數量的前幾個元素的 Go 語言程式

package main
import "fmt"

// function to get the first element from the array
func getFirstElem(array []int, index int) []int {
   return append(array[:index])
}
func main() {
   
   // initializing an array
   array := make([]int, 0, 5)
   array = append(array, 1, 2, 3, 4, 5)
   fmt.Println("The given array is:", array)
   var index int = 2
   elem := array[index]
   result := getFirstElem(array, index)
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained before the element", elem, "is:\n", result)
}

輸出

The given array is: [1 2 3 4 5]

The provided index is: 2
Array obtained before the element 3 is:
 [1 2]

方法 2:使用使用者定義函式獲取陣列中的元素

在此示例中,我們將編寫一個 Go 語言程式,在程式的 main() 部分從陣列中獲取指定數量的前幾個元素。

演算法

**步驟 1** − 首先,我們需要匯入 fmt 包。

**步驟 2** − 現在,我們需要啟動 main() 函式。

**步驟 3** − 在這裡,使用 make() 函式初始化一個整數陣列,並將值追加到陣列中。然後使用 fmt.Println() 函式在螢幕上列印陣列。

**步驟 4** − 在一個變數中儲存需要獲取元素之前的索引。在另一個變數中儲存該索引處的元素。

**步驟 5** − 現在,要重新切片陣列,請使用 : 運算子並將提供的索引之前的元素儲存在一個變數中。

**步驟 6** − 接下來,在螢幕上列印最終陣列。

示例

使用使用者定義函式從陣列中獲取指定數量的前幾個元素。

package main
import "fmt"
func main() {
   
   // initializing an array
   array := make([]int, 0, 5)
   array = append(array, 11, 20, 13, 44, 56)
   fmt.Println("The given array is:", array)
   var index int = 3
   elem := array[index]
   result := array[:index]
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained after getting values before", elem, "is:\n", result)
}

輸出

The given array is: [11 20 13 44 56]

The provided index is: 3
Array obtained after getting values before 44 is:
 [11 20 13]
 

方法 3:使用 append() 函式從整數陣列中獲取元素

在本方法中,我們將使用 for 迴圈在 Go 程式語言中獲取陣列開頭特定索引之前的元素。

演算法

**步驟 1** − 首先,我們需要匯入 fmt 包。

**步驟 2** − 現在,我們需要啟動 main() 函式。

**步驟 3** − 在這裡,使用 make() 函式初始化一個整數陣列,並將值追加到陣列中。接下來,在螢幕上列印陣列。

**步驟 4** − 將需要列印元素之前的索引和該索引處的值儲存在變數中。

**步驟 5** − 現在,使用 for 迴圈遍歷陣列,並將提供的索引之前位置的元素儲存在新陣列中。

**步驟 6** − 接下來,在螢幕上列印最終陣列。

示例

使用 append() 函式從整數陣列中獲取指定數量的前幾個元素的 Go 語言程式。

package main
import "fmt"
func main() {
   array := make([]int, 0, 8)
   var result []int
   array = append(array, 11, 20, 13, 44, 56, 96, 54, 97)
   fmt.Println("The given array is:", array)
   
   // getting the index
   var index int = 3
   
   // re-slicing the array
   for i := 0; i < len(array); i++ {
      if i < index {
         result = append(result, array[i])
      }
   }
   elem := array[index]
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained after getting elements before", elem, "is:\n", result)
}

輸出

The given array is: [11 20 13 44 56 96 54 97]

The provided index is: 3
Array obtained after getting elements before 44 is:
 [11 20 13]

結論

我們已經成功編譯並執行了一個 Go 語言程式,用於獲取陣列中指定數量的前幾個元素,並附帶示例。

更新於: 2023年2月9日

123 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.