Junior — Middle
Ποια τιμή επιστρέφει η συνάρτηση len όταν εφαρμόζεται σε τύπο δεδομένων συμβολοσειράς;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go, η συνάρτηση len που εφαρμόζεται σε μια συμβολοσειρά επιστρέφει τον αριθμό των bytes σε αυτήν τη συμβολοσειρά, όχι τον αριθμό των χαρακτήρων (runes). Αυτό συμβαίνει επειδή οι συμβολοσειρές στο Go αποθηκεύονται σε μορφή UTF-8, όπου ένας χαρακτήρας μπορεί να καταλαμβάνει πολλά bytes.
Παράδειγμα:
s := "Привет"
fmt.Println(len(s)) // Θα εμφανίσει τον αριθμό των bytes, π.χ. 12
Αν θέλετε να πάρετε τον αριθμό των χαρακτήρων (runes), πρέπει να μετατρέψετε τη συμβολοσειρά σε ένα slice από runes:
fmt.Println(len([]rune(s))) // Θα εμφανίσει τον αριθμό των χαρακτήρων, π.χ. 6