Go 語言程式從陣列中移除前 N 個元素
在本教程中,我們將編寫一個 Go 語言程式,用於從陣列中移除前 N 個元素。我們可以使用 Go 語言內建函式或使用 for 迴圈來實現。第一種方法在功能上比第二種方法更高效,但我們將在本程式中討論這兩種方法。
方法 1:使用內部函式從整數陣列中移除前 N 個元素
在本方法中,我們將編寫一個 Go 語言程式,使用 append() 庫函式從陣列中移除前 N 個元素。
語法
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** - 在螢幕上列印最終陣列。
示例
使用內部函式從整數陣列中移除前 N 個元素的 Go 語言程式
package main import "fmt" // function to remove the first element from the array func delFirstElem(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 := delFirstElem(array, index) fmt.Println() fmt.Println("The provided index is:", index) fmt.Println("Array obtained after deleting elements before", elem, "is:\n", result) }
輸出
The given array is: [1 2 3 4 5] The provided index is: 2 Array obtained after deleting elements before 3 is: [3 4 5]
方法 2:使用使用者定義函式從陣列中移除前 N 個元素
在本方法中,我們將編寫一個 Go 語言程式,在程式的 main() 部分從陣列中移除前 N 個元素。
演算法
**步驟 1** - 首先,我們需要匯入 fmt 包。
**步驟 2** - 現在,我們需要啟動 main() 函式。
**步驟 3** - 在這裡,使用 make() 函式初始化一個整數陣列,並將值追加到陣列中。此外,使用 fmt.Println() 函式在螢幕上列印陣列。
**步驟 4** - 在一個變數中儲存要刪除元素之前的索引。將該索引處的元素儲存在一個變數中。
**步驟 5** - 現在,要重新切片陣列,請使用 : 運算子並將提供索引之前的元素儲存在一個變數中。
**步驟 6** - 此外,在螢幕上列印最終陣列。
示例
使用使用者定義函式從陣列中移除前 N 個元素的 Go 語言程式
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 deleting elements before", elem, "is:\n", result) }
輸出
The given array is: [11 20 13 44 56] The provided index is: 3 Array obtained after deleting elements before 44 is: [44 56]
方法 3:使用 For 迴圈從整數陣列中移除前 N 個元素
在本方法中,我們將使用 for 迴圈從 Go 程式語言中陣列的開頭移除特定索引之前的元素。
演算法
**步驟 1** - 首先,我們需要匯入 fmt 包。
**步驟 2** - 現在,我們需要啟動 main() 函式。
**步驟 3** - 在這裡,使用 make() 函式初始化一個整數陣列,並將值追加到陣列中。此外,在螢幕上列印陣列。
**步驟 4** - 在一個變數中儲存要刪除元素之前的索引和該索引處的元素。
**步驟 5** - 現在,使用 for 迴圈迭代陣列並將索引之後位置的元素儲存在新陣列中。
**步驟 6** - 最後,在螢幕上列印最終陣列。
示例
使用 For 迴圈從整數陣列中移除前 N 個元素的 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 deleting 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 deleting elements before 44 is: [44 56 96 54 97]
結論
我們已經成功編譯並執行了一個 Go 語言程式,用於從陣列中移除前 N 個元素,並附帶示例。