Sobes.tech
Junior

Golang тилиндеги string маалымат түрү эмнени билдирет?

sobes.tech AI

AIден жооп

Golang'da 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