Dans Go, les chaînes sont immuables, ce qui signifie que leur contenu ne peut pas être modifié une fois créé. Cela peut être frustrant lorsque vous tentez de modifier une chaîne existante, mais il existe une solution simple en utilisant le package fmt.
Considérez le code suivant :
<code class="go">package main import "fmt" func ToUpper(str string) string { new_str := str for i := 0; i < len(str); i++ { if str[i] >= 'a' && str[i] <= 'z' { chr := uint8(rune(str[i]) - 'a' + 'A') new_str[i] = chr } } return new_str } func main() { fmt.Println(ToUpper("cdsrgGDH7865fxgh")) }</code>
Ce code tente de mettre les caractères en majuscules et minuscules. dans une chaîne, mais vous rencontrerez une erreur : "impossible d'attribuer à new_str[i]". En effet, les chaînes sont immuables.
Pour surmonter ce problème, nous pouvons convertir la chaîne en une tranche d'octets et la modifier à la place :
<code class="go">func ToUpper(str string) string { new_str := []byte(str) for i := 0; i < len(str); i++ { if str[i] >= 'a' && str[i] <= 'z' { chr := uint8(rune(str[i]) - 'a' + 'A') new_str[i] = chr } } return string(new_str) }</code>
Ici, []byte(str) crée une tranche d'octets de la chaîne, et string(new_str) reconvertit la tranche d'octets modifiée en chaîne.
Avec ce changement, vous pouvez désormais modifier les chaînes et convertir les caractères minuscules en majuscules :
fmt.Println(ToUpper("cdsrgGDH7865fxgh")) // Output: CDSRGgdh7865FXGH
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!