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 !