所以,我正在学习Golang,这让我感到困惑。 subStr函数应该生成一个子字符串,但是确实会正确打印ñ和í等字符。由于
str[i]
返回一个字节,我将其转换为字符串,但是它不再是utf-8?还是Unicode? (看,这是我感到困惑的地方) 我确实读过类似主题的建议,说我应该使用
[]rune
代替字符串,我并没有真正理解它。 我是GO的新手,这一切都很令人困惑,因此,如果有人想解释一下我应该怎么做才能使subStr函数正常工作,我将不胜感激。
代码:
package main
import(
"fmt"
)
func subStr(str string, beg int, end int)string {
var res string
for i := beg-1; i < end+1; i++ {
res = string(res + string(str[i]))
}
return res
}
func main() {
fmt.Println("Testing function\n")
str := "añadir algo con letras extrañas aquí"
fmt.Println(str)
substr := subStr(str, 1, 4)
fmt.Println(substr)
}
输出:
Testing function
añadir algo con letras extrañas aquí
añad
从输出中可以看到,原始字符串可以很好地打印,但是子字符串却不能