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>
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!