Go語言程式將陣列轉換為切片


切片是元素的序列,就像陣列一樣。陣列是固定長度的元素序列,而切片是動態陣列,這意味著它的值不是固定的,可以更改。切片比陣列更有效率且速度更快,此外它們是透過引用傳遞而不是透過值傳遞。

方法 1:使用 [:]

在這種方法中,我們將使用 [:] 來切片陣列。將陣列轉換為切片後,我們將使用 Go 語言中的 print 語句在控制檯上列印輸出。

演算法

  • 步驟 1 − 建立一個 package main 並宣告 fmt(格式化包)包在程式中,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。

  • 步驟 2 − 建立一個具有固定常量值的陣列,並在該陣列中放入一些要轉換為切片的值。

  • 步驟 3 − 陣列 [:] 語法將陣列轉換為切片並將值儲存在名為 myslice 的切片中。

  • 步驟 4 − 在程式執行時在控制檯上列印切片。

  • 步驟 5 − 使用 fmt.Println() 函式執行 print 語句,其中 ln 表示換行。

示例

在下面的示例中,我們將使用 [:] 在使用陣列時進行切片

package main
import "fmt"
func main() {
   array := [4]int{10, 20, 30, 40} //create an array with four elements
   myslice := array[:]// Convert the array to a slice
   fmt.Println("The array converted to slice is presented here:")
   fmt.Println(myslice) //print the slice
}

輸出

The array converted to slice is presented here:
[10 20 30 40]

方法 2:使用 Copy 和 Make 函式

在這種方法中,一個函式將建立一個新的切片,其中陣列元素將使用 copy 函式複製,copy 函式也是一種內建函式。

語法

func copy(dst, str[] type) int

Go 語言中的 copy 函式用於將一個源陣列的值複製到目標陣列,並將複製的元素數量作為結果返回。它以兩個陣列作為引數。

func make ([] type, size, capacity)

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

演算法

  • 步驟 1 − 建立一個 package main 並宣告 fmt(格式化包)包在程式中,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。

  • 步驟 2 − 在 main 函式內部建立一個具有固定常量值的陣列,並在該陣列中放入一些要轉換為切片的值。

  • 步驟 3 − 使用 make 函式建立一個空切片,其長度等於要將其元素複製到該切片的陣列的長度。

  • 步驟 4 − 使用 copy 函式將陣列的值複製到建立的新切片中,程式的目的得到滿足。

  • 步驟 5 − 切片將使用 fmt.println() 函式列印到螢幕上,其中 ln 表示換行。

示例

在下面的示例中,我們使用 copy 和 make 函式將陣列轉換為切片

package main
import "fmt"
func main() {
   // Declare an array of integers with 5 elements
   array := [4]int{10, 20, 30, 40}
   
   // Convert the array to a slice using the make function
   myslice := make([]int, len(array))
   copy(myslice, array[:])
   fmt.Println("The array after converted to slice is presented as:")
   fmt.Println(myslice) //print slice
}

輸出

The array after converted to slice is presented as:
[10 20 30 40]

方法 3:使用 Append() 函式

在這種方法中,我們將使用 for 迴圈中內建的 append 函式將陣列轉換為切片,以將陣列元素追加到切片中。輸出將使用 Go 語言中的 print 語句在控制檯上列印。

語法

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

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

演算法

  • 步驟 1 − 建立一個 package main 並宣告 fmt(格式化包)包在程式中,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。

  • 步驟 2 − 在 main 函式內部建立一個具有固定常量值的陣列,並在該陣列中放入一些要轉換為切片的值。

  • 步驟 3 − 建立一個空切片,並使用 for 迴圈遍歷陣列的範圍,在迴圈中將陣列元素追加到切片中,並一直重複直到迴圈終止。

  • 步驟 4 − 迴圈終止後,使用 fmt.Println() 函式在控制檯上列印切片,其中 ln 表示換行。

示例

示例中使用內建 append 函式將陣列轉換為切片的 Go 語言程式

package main
import "fmt"
func main() {
   array := [4]int{10, 20, 30, 40} //create an array of size 4
   var myslice []int
   for _, element := range array {
      myslice = append(myslice, element) //run a for loop to append elements
   }
   
   // Print the slice
   fmt.Println("The array after being converted to slice is:")
   fmt.Println(myslice) //print slice
}

輸出

The array after being converted to slice is:
[10 20 30 40]

結論

在上面的程式中,我們使用了三個示例將陣列轉換為切片。在第一個示例中,我們在方法中使用了一個語法將陣列轉換為切片。在第二個示例中,我們使用 make 函式執行程式,在第三個示例中,我們使用 append 函式。因此,程式成功執行。

更新於: 2023年2月13日

3K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.