Sobes.tech
Junior — Middle

Πώς υλοποιούνται οι συμβολοσειρές και πώς σχετίζονται με τις ρούνες στη γλώσσα Go;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Go, οι συμβολοσειρές αντιπροσωπεύονται από τον τύπο string, ο οποίος είναι μια αμετάβλητη ακολουθία byte, συνήθως κωδικοποιημένη σε UTF-8. Αυτό σημαίνει ότι μια συμβολοσειρά είναι μια ακολουθία byte, όχι χαρακτήρων.

Οι ρούνες (rune) είναι ένας τύπος που αντιπροσωπεύει ένα σημείο κώδικα Unicode (int32). Για να εργαστούμε με χαρακτήρες Unicode σε μια συμβολοσειρά, η συμβολοσειρά μετατρέπεται σε μια ακολουθία ρούνων, που επιτρέπει τη σωστή επεξεργασία πολυ-byte χαρακτήρων.

Παράδειγμα:

s := "Привет"
for i, r := range s {
    fmt.Printf("%d: %c\n", i, r) // i — δείκτης byte, r — ρούνες (χαρακτήρας)
}

runes := []rune(s) // μετατροπή της συμβολοσειράς σε ακολουθία ρούνων
fmt.Println(runes[0]) // πρώτος χαρακτήρας ως ρούν

Έτσι, οι συμβολοσειρές στο Go είναι ακολουθίες byte, και οι ρούνες είναι μεμονωμένοι χαρακτήρες Unicode, που επιτρέπει τη σωστή εργασία με πολύγλωσσα κείμενα.