Maison > développement back-end > Golang > ## Pourquoi ne puis-je pas modifier une chaîne en place dans Go ?

## Pourquoi ne puis-je pas modifier une chaîne en place dans Go ?

Linda Hamilton
Libérer: 2024-10-27 10:25:30
original
905 Les gens l'ont consulté

## Why Can't I Modify a String in Place in Go?

Pourquoi ne puis-je pas modifier une chaîne en place dans Go ?

Les chaînes dans Go sont immuables, ce qui signifie qu'une fois créées, vous ne pouvez pas modifier leur contenu. Cela ressort clairement de l'erreur suivante : "cannot assign to new_str[i]".

Pour modifier le contenu d'une chaîne, vous devez d'abord la convertir en une tranche []byte. Contrairement aux chaînes, les tranches d'octets sont en effet mutables. Vous pouvez ensuite effectuer les modifications souhaitées sur la tranche d'octets et la reconvertir en chaîne à l'aide de la fonction string(...).

Voici une version modifiée de votre code qui utilise des tranches d'octets pour changer les caractères minuscules en majuscule :

<code class="go">func ToUpper(str string) string {
    bytes := []byte(str)
    for i := 0; i < len(str); i++ {
        if bytes[i] >= 'a' && bytes[i] <= 'z' {
            chr := uint8(rune(bytes[i]) - 'a' + 'A')
            bytes[i] = chr
        }
    }
    return string(bytes)
}</code>
Copier après la connexion

Maintenant, lorsque vous appelez ToUpper("cdsrgGDH7865fxgh"), il convertira correctement tous les caractères minuscules en majuscules.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal