Go語言程式將切片分成兩半
切片也可以稱為動態陣列,因為它的值是動態的,而普通陣列是靜態的。這使得切片更高效且更快。它們是透過引用傳遞而不是透過值傳遞。讓我們學習如何使用 Go 語言程式將切片分成兩半。
語法
func append(slice, element_1, element_2…, element_N) []T
append 函式用於向陣列切片新增值。它接受多個引數。第一個引數是要新增值的陣列,後跟要新增的值。然後,該函式返回包含所有值的陣列的最終切片。
演算法
步驟 1 − 建立一個 package main 並宣告程式中的 fmt(格式化包)包,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。
步驟 2 − 建立切片並使用 append 函式(內建函式)在切片內填充值。
步驟 3 − 使用 fmt.Println() 函式在控制檯上列印切片。
步驟 4 − 使用 len(slice)/2 查詢切片的中點並將其儲存在 mid 變數中,這裡 len 指的是切片的長度。
步驟 5 − 在 left 變數中儲存 mid 之前和等於 mid 的值,在 right 變數中儲存 mid 之後的值。
步驟 6 − 使用 fmt.Println() 函式在控制檯上列印左半部分和右半部分,其中 ln 表示換行。
示例 1
在這個示例中,我們將學習如何使用切片的中值將切片分成兩半。螢幕上列印的輸出將是左切片和右切片,其中左切片包含中間元素,右切片不包含中間元素。讓我們透過程式碼和演算法學習如何執行此操作。
package main import "fmt" func main() { var slice []int // initialize slice slice = append(slice, 10) //fill the slice using append function slice = append(slice, 20) slice = append(slice, 30) slice = append(slice, 40) fmt.Println("The original slice created is:", slice) //print original slice mid := len(slice) / 2 //find mid element left := slice[:mid] //store left slice elements in left variable right := slice[mid:] //store right slice elements in right variable fmt.Println("The left half presented here is:", left) //print left elements fmt.Println("The right half presented here is:", right) //print right elements }
輸出
The original slice created is: [10 20 30 40] The left half presented here is: [10 20] The right half presented here is: [30 40]
示例 2
在這個示例中,我們將瞭解如何使用 append 函式(一種內建函式)將切片分成兩半。它將用於將後半部分的元素附加到 append 函式引數內建立的新切片中。在這裡,讓我們深入瞭解演算法和程式碼以瞭解更多資訊。
package main import "fmt" func main() { var slice []int // initialize slice slice = append(slice, 10) //fill the slice using append function slice = append(slice, 20) slice = append(slice, 30) slice = append(slice, 40) fmt.Println("The original slice created here is:", slice) //print original slice mid := len(slice) / 2 //find mid element left := slice[:mid] // right := append([]int{}, slice[mid:]...) //store the right elements into the right variable fmt.Println("The left half presented here is:", left) //print left elements fmt.Println("The right half presented here is:", right) //print right elements }
輸出
The original slice created here is: [10 20 30 40] The left half presented here is: [10 20] The right half presented here is: [30 40]
結論
我們使用兩個示例執行了將切片分成兩半的程式。在第一個示例中,我們使用中間值計算了二分之一。在第二個示例中,我們使用 append 函式查詢二分之一。此外,我們使用了一個名為 append 函式的內建函式,該函式用於向切片新增值並建立一個名為 right 切片的新切片。這兩個示例都給出了類似的輸出。因此,程式成功執行。