为 unicode 字母写一个 toUpper 函数
Writing a toUpper function for unicode letters
从这里开始http://blog.golang.org/slices(就在容量部分之前)
type path []byte
func (p path) ToUpper() {
for i, b := range p {
if 'a' <= b && b <= 'z' {
p[i] = b + 'A' - 'a'
}
}
}
func main() {
pathName := path("/usr/bin/tso")
pathName.ToUpper()
string1 := string(pathName)
fmt.Printf("%s\n", string1)
}
正在阅读 golang 中的切片和内容。这是一个转换ascii字符的函数。您将如何着手将此功能也用于处理 unicode?
使用 unicode 时应使用 rune
。 golang中的unicode
包有一个toUpper函数。
package main
import (
"unicode"
"fmt"
)
type path []rune
func (p path) ToUpper() {
for i, b := range p {
p[i] = unicode.ToUpper(b)
}
}
func main() {
pathName := path("/usr/bin/tso")
pathName.ToUpper()
string1 := string(pathName)
fmt.Printf("%s\n", string1)
}
操场上:
example
您可以使用 strings.Map
将函数应用于字符串的每个符文,返回映射的字符串。 Playground link to this code:
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
pathName := strings.Map(unicode.ToUpper, "/usr/bin/tso")
fmt.Printf("%s\n", pathName)
}
从这里开始http://blog.golang.org/slices(就在容量部分之前)
type path []byte
func (p path) ToUpper() {
for i, b := range p {
if 'a' <= b && b <= 'z' {
p[i] = b + 'A' - 'a'
}
}
}
func main() {
pathName := path("/usr/bin/tso")
pathName.ToUpper()
string1 := string(pathName)
fmt.Printf("%s\n", string1)
}
正在阅读 golang 中的切片和内容。这是一个转换ascii字符的函数。您将如何着手将此功能也用于处理 unicode?
使用 unicode 时应使用 rune
。 golang中的unicode
包有一个toUpper函数。
package main
import (
"unicode"
"fmt"
)
type path []rune
func (p path) ToUpper() {
for i, b := range p {
p[i] = unicode.ToUpper(b)
}
}
func main() {
pathName := path("/usr/bin/tso")
pathName.ToUpper()
string1 := string(pathName)
fmt.Printf("%s\n", string1)
}
操场上: example
您可以使用 strings.Map
将函数应用于字符串的每个符文,返回映射的字符串。 Playground link to this code:
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
pathName := strings.Map(unicode.ToUpper, "/usr/bin/tso")
fmt.Printf("%s\n", pathName)
}