Junior — Middle
Ичке функциясы len сызмалда чакырылганда кандай натыйжа кайтарат?
sobes.tech AI
AIден жооп
Go'da, içki len funksiyası, bir satır üzərində çağırıldıqda, həmin satırdakı baytların sayını qaytarır, simvolların (runların) sayını deyil.
Bu, Go'daki satırların UTF-8 kodlamasında baytların ardıcıllığı olması ilə əlaqədardır. Əgər satır yalnız ASCII simvolları ehtiva edirsə, baytların sayı simvolların sayına bərabərdir. Amma satırda çoxbaytlı simvollar (məsələn, kiril, emoji) varsa, len baytların cəmini qaytarır, simvolların sayını deyil.
Nümunə:
s := "Привет"
fmt.Println(len(s)) // Baytların sayını göstərəcək, məsələn 12
runes := []rune(s)
fmt.Println(len(runes)) // Simvolların sayını göstərəcək, məsələn 6
Əgər simvolların (runların) sayını almaq istəyirsinizsə, satırı rune diliminə çevirməli və onun uzunluğunu götürməlisiniz.