Junior — Middle
რა წარმოადგენს [] ოპერატორის შესრულების შედეგი სტრიქონის ტიპის მონაცემებისთვის?
sobes.tech AI
პასუხი AI-სგან
Go ენისა, ოპერატორი [] მონაცემთა ტიპისთვის string გამოიყენება სიგრძის ბაიტების სლაისის მიღებისთვის ან ინდექსის მიხედვით ცალკეული ბაიტის მისაღებად. Go-ში სტრიქონი არის შეუცვლელი ბაიტების მიმდევრობა (UTF-8). როდესაც მივმართავთ str[i], ის აბრუნებს byte ტიპის ბაიტს (uint8-ის ალის), და არა სიმბოლოს ჩვეულებრივ მნიშვნელობაში, რადგან Unicode სიმბოლოს შეიძლება ჰქონდეს რამდენიმე ბაიტი.
მაგალითი:
s := "Привет"
fmt.Println(s[0]) // გამოიტანს ბაიტს, რომელიც შეესაბამება სიმბოლის 'П' პირველ ნაწილს
fmt.Println(string(s[0])) // გამოიტანს არასწორ სიმბოლოს, რადგან ეს არ არის სრული UTF-8 სიმბოლო
// სიმბოლოს (rune) მიღებისთვის, საჭიროა სტრიქონის გარდაქმნა rune-ის სლაიდად:
r := []rune(s)
fmt.Println(string(r[0])) // გამოიტანს 'П'
ამიტომ, ოპერატორი [] სტრიქონებისთვის აბრუნებს ბაიტს ინდექსის მიხედვით, არა Unicode სიმბოლოს.