for-range
over a string to get the runes (Unicode code points) in the string.
for i, rune := range aString {
... // use the rune
}
i
is the start index of the bytes of the rune. The size (count of bytes) of each rune can be got but the process is not very smooth. The following way is more smooth to rune sizes:
import "unicode/utf8"
var str = aString
for {
rune, size := utf8.DecodeRuneInString(str)
if size == 0 {
break
}
str = str[size:]
... // use rune
}
The Go 101 project is hosted on Github. Welcome to improve Go 101 articles by submitting corrections for all kinds of mistakes, such as typos, grammar errors, wording inaccuracies, description flaws, code bugs and broken links.
If you would like to learn some Go details and facts every serveral days, please follow Go 101's official Twitter account @zigo_101.