Sobes.tech
Junior — Middle

Τι συμβαίνει όταν πραγματοποιείται επανάληψη σε στοιχεία συμβολοσειράς στον προγραμματισμό;

sobes.tech AI

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

Στη Go, κατά την επανάληψη σε μια συμβολοσειρά με τη χρήση του βρόχου for range, διατρέχονται τα σημεία κώδικα Unicode (runas), και όχι τα bytes. Αυτό σημαίνει ότι κάθε στοιχείο του βρόχου είναι ένα σύμβολο Unicode, που μπορεί να καταλαμβάνει πολλά bytes σε UTF-8.

Για παράδειγμα:

s := "Привет"
for i, r := range s {
    fmt.Printf("Δείκτης: %d, Runa: %c\n", i, r)
}

Εδώ, το i είναι ο δείκτης του πρώτου byte της rune στη συμβολοσειρά, και το r είναι η ίδια η rune (το σύμβολο).

Έτσι, η επανάληψη σε μια συμβολοσειρά στη Go επιτρέπει σωστή εργασία με πολύγλωσσα σύμβολα και δεν σπάει πολύ-byte σύμβολα σε UTF-8.