Golang 中根據第一個元素拆分字串
解析git 分支名稱時,必須將字串拆分為遠端和遠端分支機構名稱。雖然最初按第一個斜杠分割似乎合乎邏輯,但當分支名稱包含多個斜杠時,就會出現挑戰。
初始方法
初始實作依賴於分割中的第一個元素slice.
func ParseBranchname(branchString string) (remote, branchname string) {
branchArray := strings.Split(branchString, "/")
remote = branchArray[0]
branchname = branchArray[1]
return
}
修訂方法
為了容納有斜線的分支名稱,程式碼被修改為將剩餘元素合併回斜線。
func ParseBranchname(branchString string) (remote, branchname string) {
branchArray := strings.Split(branchString, "/")
remote = branchArray[0]
copy(branchArray[0:], branchArray[0 1:])
branchArray[len(branchArray)-1] = ""
branchArray = branchArray[:len(branchArray)-1]
branchname = strings.Join(branchArray, "/")
return
}
使用 SplitN 的替代解決方案
對於 Go 版本 1.18 及更高版本,可以使用 strings.SplitN 且 n=2 的替代解決方案。這將結果限制為只有兩個子字串,有效地實現了所需的分割。
func ParseBranchname(branchString string) (remote, branchname string) {
branchArray := strings.SplitN(branchString, "/", 2)
remote = branchArray[0]
branchname = branchArray[1]
return
}
此解決方案透過直接提取必要的子字串而無需額外操作,從而簡化了流程。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3