Sobes.tech
Junior

Типи маълумоти string дар забони Golang чӣ маъно дорад?

sobes.tech AI

Ҷавоб аз AI

Гулангда string — бу ўзгартирилмайдиган байтлардан иборат тизм.

Асосий хусусиятлар:

  • Ўзгартирилмаслик: Бир сатр яратилгандан кейин, уни ўзгартириш мумкин эмас. Ҳар қандай операция, бу сатрни ўзгартириш, аслида янги сатр яратади.
  • Тасвирлаш: Сатр байтлардан иборат бўлиб, улар UTF-8 кодланган матнни ифодалайди деб ҳисобланади.
  • Узунлиги: Сатрнинг узунлиги (len(s)) сатрдaги байтлар сонини қайтариб, руна (символлар) сонини эмас.
  • Индекслов: Сатрдаги элементларга индекс ёрдамида кириш (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