«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как разделить строку на основе первого элемента в Golang?

Как разделить строку на основе первого элемента в Golang?

Опубликовано 11 ноября 2024 г.
Просматривать:631

How to Split a String Based on the First Element in Golang?

Разделение строки на основе первого элемента в 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