Avatar ·

Extraction de sous-chaîne en Go : comment obtenir une partie d'une chaîne par indices ?

Voici la traduction demandée : Bonjour ! Je viens de commencer à apprendre Go et j'ai rencontré un problème en travaillant avec les chaînes. Dans d'autres langages (par exemple, Python ou JavaScript), j'ai l'habitude de faire quelque chose comme `str[1:4]` pour obtenir une sous-chaîne. En Go, j'ai essayé une syntaxe similaire, mais je n'ai pas obtenu ce que j'attendais. Voici mon code : ```go package main import "fmt" func main() { str := "Привет, мир!" sub := str[1:4] fmt.Println(sub) // J'attends : "рив", mais j'obtiens quelque chose d'étrange } ``` Au lieu de "рив", je vois des caractères cassés. J'ai lu que Go utilise UTF-8, mais je ne comprends pas comment cela affecte l'extraction de sous-chaîne. J'ai aussi essayé de travailler avec une chaîne ASCII : ```go str := "Hello, World!" sub := str[1:4] fmt.Println(sub) // Affiche "ell" — ça marche ! ``` Pourquoi y a-t-il des problèmes avec le cyrillique ? Comment extraire correctement des sous-chaînes de chaînes contenant des caractères Unicode (lettres russes, emojis, etc.) ? J'ai besoin d'une méthode fiable qui fonctionne pour toutes les chaînes. Merci d'avance !