Так как строка — это массив байт, ее можно обойти с помощью цикла for
:
package main
import (
"fmt"
)
func main() {
s := "hello"
for i := 0; i < len(s); i++ {
fmt.Println(string(s[i]))
}
}
Вывод:
h e l l o
Таким способом можно обойти только строки, состоящие из ASCII символов. Если строка содержит мультибайтовые символы, вывод будет некорректен:
package main
import (
"fmt"
)
func main() {
s := "привет"
for i := 0; i < len(s); i++ {
fmt.Println(string(s[i]))
}
}
Так происходит, потому что мультибайтовый символ разбивается по байтам, и каждый байт переводится по таблице ASCII в соответствующий символ.
Вывод проверьте сами в Go Playground
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Вебинар «Как самостоятельно учиться»