Sobes.tech
Junior — Middle

Wyjaśnij koncepcję typu łańcucha w języku Go i jego główne cechy.

sobes.tech AI

Odpowiedź od AI

W języku Go typ string (string) reprezentuje niezmienną sekwencję bajtów, zwykle używaną do przechowywania tekstu w kodowaniu UTF-8.

Główne cechy łańcuchów w Go:

  • Niezmienność: Po utworzeniu łańcucha nie można go zmienić. Operacje zmieniające łańcuch tworzą nowy łańcuch.
  • Kodowanie UTF-8: Łańcuchy są przechowywane w UTF-8, co pozwala na pracę z tekstem wielojęzycznym.
  • Dostęp po bajtach: Indeksowanie łańcucha zwraca bajt, nie znak (rune). Do pracy ze znakami używa się typu rune.
  • Wsparcie dla wycinków: Można uzyskać podłańcuchy za pomocą wycinków, np. s[0:5].

Przykład pracy z łańcuchami i runami:

s := "Привет"
fmt.Println(len(s)) // liczba bajtów
for i, r := range s {
    fmt.Printf("%d: %c\n", i, r) // wyświetla indeks bajtu i znak
}

W związku z tym, łańcuchy w Go są wygodnym i wydajnym sposobem pracy z tekstem, ale wymaga to zrozumienia różnicy między bajtami a znakami.