Go語言中根據指定表示式分割切片


在 Go 語言中,切片用於儲存相同型別元素的序列。切片切片是 Go 語言中常見的操作,但有時我們需要根據指定的分割符來分割切片。Go 語言提供了一個內建函式來根據分割符分割字串,但分割切片的方式略有不同。在本文中,我們將探討如何在 Go 語言中根據指定表示式分割切片。

使用字串包

Go 語言中的 strings 包提供了 Split() 函式,該函式用於根據分割符將字串分割成切片。我們可以透過將切片轉換為字串來使用相同的函式分割切片。

示例

package main

import (
   "fmt"
   "strings"
)

func main() {
   s := []string{"hello-world", "golang-is-great", "slice-is-fun"}
   sep := "-"

   for _, v := range s {
      result := strings.Split(v, sep)
      fmt.Println(result)
   }
}

輸出

[hello world]
[golang is great]
[slice is fun]

在上面的示例中,我們有一個切片 s,其中包含三個用 - 分隔的字串。我們在 sep 變數中定義了分割符 -。然後,我們迴圈遍歷切片的每個元素,並使用 strings 包的 Split() 函式對其進行分割。使用 fmt 包列印結果切片。

使用自定義函式

我們還可以建立自己的自定義函式來根據分割符分割切片。在這種方法中,我們迴圈遍歷切片的每個元素,並根據分割符對其進行分割。然後,我們將結果切片新增到一個新的切片中。

示例

package main

import (
   "fmt"
   "strings"
)

func splitSlice(s []string, sep string) [][]string {
   result := [][]string{}

   for _, v := range s {
      temp := strings.Split(v, sep)
      result = append(result, temp)
   }
   return result
}

func main() {
   s := []string{"hello-world", "golang-is-great", "slice-is-fun"}
   sep := "-"
   result := splitSlice(s, sep)
   fmt.Println(result)
}

輸出

[[hello world] [golang is great] [slice is fun]]

在上面的示例中,我們建立了一個自定義函式 splitSlice(),它接受切片和分割符作為輸入,並返回一個切片切片。我們迴圈遍歷輸入切片的每個元素,並根據分割符對其進行分割。然後,我們將結果切片新增到一個新的切片 result 中。最後,函式返回結果。

結論

根據指定表示式分割切片是 Go 語言中常見的操作。我們可以使用 strings 包的內建 Split() 函式或建立自定義函式來分割切片。方法的選擇取決於用例和個人喜好。

更新於: 2023年4月19日

108 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告