为 Unicode 字母编写一个 toUpper 函数

从这里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?


慕村9548890
浏览 174回答 2
2回答

呼如林

rune使用unicode时应该使用。unicodegolang中的包有一个toUpper函数。package mainimport (&nbsp; &nbsp; "unicode"&nbsp; &nbsp; "fmt")type path []runefunc (p path) ToUpper() {&nbsp; &nbsp; for i, b := range p {&nbsp; &nbsp; &nbsp; &nbsp; p[i] = unicode.ToUpper(b)&nbsp; &nbsp; }}func main() {&nbsp; &nbsp; pathName := path("/usr/bin/tso")&nbsp; &nbsp; pathName.ToUpper()&nbsp; &nbsp; string1 := string(pathName)&nbsp; &nbsp; fmt.Printf("%s\n", string1)}

红颜莎娜

您可以使用strings.Map将函数应用于字符串的每个符文,返回映射的字符串。此代码的游乐场链接:package mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "strings"&nbsp; &nbsp; "unicode")func main() {&nbsp; &nbsp; pathName := strings.Map(unicode.ToUpper, "/usr/bin/tso")&nbsp; &nbsp; fmt.Printf("%s\n", pathName)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go