Go 根据字符在字符串中的位置获取字符

Go 根据字符在字符串中的位置获取字符,go,Go,我想提取像s1[0]这样的字符串元素。但是我没有得到正确的元素。刚刚返回的号码。我不知道这个数字的意思。我认为有一个unicode/utf8库。 但是我不知道如何使用这个从元素中得到正确的值。 我想提取'한' 这个词。 你能帮我怎么转换吗?谢谢你的帮助。我已经解决了这个问题。这个答案缺乏我认为在GO土地上至关重要的:对绩效影响的评估。对于一个两个字符的字符串,为了得到第一个字符串而产生一段符文,然后立即将其扔掉,这是一种所谓的代码气味,我认为作者来自web前端脚本,但如果字符串是从外部读取的,长

我想提取像s1[0]这样的字符串元素。但是我没有得到正确的元素。刚刚返回的号码。我不知道这个数字的意思。我认为有一个unicode/utf8库。 但是我不知道如何使用这个从元素中得到正确的值。 我想提取'한' 这个词。
你能帮我怎么转换吗?

谢谢你的帮助。我已经解决了这个问题。这个答案缺乏我认为在GO土地上至关重要的:对绩效影响的评估。对于一个两个字符的字符串,为了得到第一个字符串而产生一段符文,然后立即将其扔掉,这是一种所谓的代码气味,我认为作者来自web前端脚本,但如果字符串是从外部读取的,长度未知,这样一个简单的操作所造成的内存浪费是不可忽略的,甚至可能被恶意实体从外部利用。Go显然是一种没有虚饰、没有废话、没有魔力的语言,它希望使用它的开发人员真正考虑他们编写的代码的特征。为此,该语言努力避免程序员在时间和空间上的复杂性。字符串到[]符文和[]字节的类型转换,反之亦然,是隐藏成本的一个地方,因为否则语言需要删除一个非常方便的特性,不能忽略。这就是为什么它需要额外的照顾。
package main

import (
    "fmt"
    _ "math"
    "unsafe"
)

func main() {
    var s1 = "한글"
    fmt.Println(s1[0]);
}
package main

import (
    "fmt"
)

func main() {
    var s1 = "한글"
    var s2 = []rune(s1)
    fmt.Println(string(s2[0]))
}