從這里http://blog.golang.org/slices(它就在容量部分之前)type path []bytefunc (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?
2 回答

呼如林
TA貢獻1798條經驗 獲得超3個贊
rune使用unicode時應該使用。unicodegolang中的包有一個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)
}

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
您可以使用strings.Map將函數應用于字符串的每個符文,返回映射的字符串。此代碼的游樂場鏈接:
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
pathName := strings.Map(unicode.ToUpper, "/usr/bin/tso")
fmt.Printf("%s\n", pathName)
}
- 2 回答
- 0 關注
- 191 瀏覽
添加回答
舉報
0/150
提交
取消