Что такое rune
в Go?
Я был googling, но Golang только говорит в одной строке: rune
является псевдонимом для int32
.
Но почему целые числа используются повсюду, например, в случаях замены?
Ниже приведена функция swapcase.
Что все <=
и -
?
И почему у switch
нет аргументов?
&&
должен означать, но что такое r <= 'z'
?
func SwapRune(r rune) rune {
switch {
case 'a' <= r && r <= 'z':
return r - 'a' + 'A'
case 'A' <= r && r <= 'Z':
return r - 'A' + 'a'
default:
return r
}
}
Большинство из них - http://play.golang.org/p/H6wjLZj6lW
func SwapCase(str string) string {
return strings.Map(SwapRune, str)
}
Я понимаю, что это сопоставление rune
- string
, чтобы он мог вернуть строку с заменой. Но я не понимаю, как здесь работают rune
или byte
.