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