Разделение строки на основе первого элемента в Golang
При анализе имен ветвей git важно разделить строку на удаленную и название филиала. Хотя изначально разделение по первой косой черте казалось логичным, возникли проблемы, когда имена ветвей содержали несколько косых черт.
Первоначальный подход
Первоначальная реализация основывалась на первом элементе разделения. срез.
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. Это ограничивает результат только двумя подстроками, эффективно достигая желаемого разделения. BranchArray:= strings.SplitN(branchString, "/", 2) удаленный = BranchArray[0] имя ветки = Массив ветки[1] возвращаться }
Это решение упрощает процесс за счет прямого извлечения необходимых подстрок без дополнительных манипуляций.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3