Junior — Middle
როგორ დავადგინოთ ერთ სიმბოლოს ბაიტებში დაკავებული ზომა სტრიქონში?
sobes.tech AI
პასუხი AI-სგან
Go ენის ფარგლებში, სტრიქონი (string) წარმოადგენს ბაიტების სერიას UTF-8 კოდირებით. იმისათვის, რომ განსაზღვროთ, რამდენ ბაიტს იკავებს ერთი სიმბოლო (Rune), უნდა გაითვალისწინოთ, რომ სხვადასხვა სიმბოლოს შეიძლება ჰქონდეს სხვადასხვა რაოდენობის ბაიტები.
თუ გსურთ იცოდეთ კონკრეტული სიმბოლოს ზომა ბაიტებში, შეგიძლიათ სტრიქონი გადააქციოთ რუნების სლაის ([]rune) და შეადაროთ ორიგინალური სტრიქონის სიგრძე რუნების სლაის სიგრძეს.
მაგალითი:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s := "Привет"
for i, w := 0, 0; i < len(s); i += w {
r, width := utf8.DecodeRuneInString(s[i:])
fmt.Printf("სიმბოლო: %c იკავებს %d ბაიტს\n", r, width)
w = width
}
}
აქ, utf8.DecodeRuneInString აბრუნებს რუნას და რაოდენობას ბაიტებში, რომელიც ის იკავებს. ამ გზით, შესაძლებელია თითოეული სიმბოლოს ზომის განსაზღვრა ბაიტებში.