Sobes.tech
Junior

Golang ენის string მონაცემთა ტიპი რა არის?

sobes.tech AI

პასუხი AI-სგან

Golang-ში string არის უცვლელი ბაიტების მიმდევრობა.

ძირითადი მახასიათებლები:

  • უცვლელობა: ერთჯერ შექმნის შემდეგ, სტრიქონი ვერ შეიცვლება. ნებისმიერი ოპერაცია, რომელიც შეცვლის სტრიქონს, სინამდვილეში ქმნის ახალს.
  • წარმოდგენა: სტრიქონი შეიცავს ბაიტების მიმდევრობას. სტანდარტულად, Golang ვარაუდობს, რომ ეს ბაიტები წარმოადგენენ UTF-8 კოდირებულ ტექსტს.
  • სიგრძე: სტრიქონის სიგრძე (len(s)) აბრუნებს ბაიტების რაოდენობას, არა — რუნების (სიმბოლოების) რაოდენობას.
  • ინდექსირება: სტრიქონის ელემენტებზე წვდომა ინდექსით (s[i]) აბრუნებს ამ ინდექსზე მდებარე ბაიტს.
  • რუნები: სიმბოლოებთან (რუნებთან) მუშაობისთვის, გამოიყენება ციკლი for range, რომელიც დეკოდირებს UTF-8-ს და უზრუნველყოფს რუნებს და მათი ინდექსებს.

მაგალითი:

// სტრიქონის ინიციალიზაცია
s := "Привет, мир!" // 23 ბაიტი, 12 რუნა

// სტრიქონის სიგრძე (ბაიტებში)
byteLength := len(s) // 23

// ბაიტზე წვდომა ინდექსით
firstByte := s[0] // firstByte = 208 (ბაიტი 'П' UTF-8-ში)

// რუნებზე ციკლი
runeCount := 0
for index, runeValue := range s {
	// index - რუნის დასაწყისის ინდექსი (ბაიტებში)
	// runeValue - დეკოდირებული რუნა
	runeCount++
}
// runeCount = 12