"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment diviser des chaînes par la première occurrence d’un élément dans Go ?

Comment diviser des chaînes par la première occurrence d’un élément dans Go ?

Publié le 2024-11-07
Parcourir:991

How to Split Strings by the First Occurrence of an Element in Go?

Diviser les chaînes uniquement en fonction de la première occurrence d'un élément dans Go

Lorsque vous travaillez avec des noms de branches git, il peut être nécessaire de les diviser pour faire la distinction entre les noms de branches distantes et le nom de la branche lui-même. Bien que la division par la première barre oblique ait été initialement utilisée, elle s'est avérée inadéquate en raison de la présence potentielle de plusieurs barres obliques dans les noms de branche.

Pour résoudre ce problème, une approche plus propre est proposée qui évite le déplacement et la refusion manuels des éléments. . En tirant parti de la fonction strings.SplitN, le problème peut être résolu de manière concise et efficace. Voici une version modifiée du code :

func ParseBranchname(branchString string) (remote, branchname string) {
    branchArray := strings.SplitN(branchString, "/", 2)
    remote = branchArray[0]
    branchname = branchArray[1]
    return
}

Dans les versions Go 1.18 et supérieures, l'utilisation de strings.SplitN peut être encore simplifiée :

func ParseBranchname(branchString string) (remote, branchname string) {
    branchArray := strings.Split(branchString, "/", 1)
    remote = branchArray[0]
    branchname = branchString[len(branchArray[0]) 1:]
    return
}
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3