我正在研究一个解决方案,以便将字符串(在我的情况下,字符串是" 05f8")转换为uint16。我进行了研究,但我找不到解决方案有谁知道怎么做?
感谢您的帮助!
答案 0 :(得分:9)
使用strconv.ParseUint
(doc)。
var s = "05f8"
var base = 16
var size = 16
value, err := strconv.ParseUint(s, base, size)
请注意,输出值为uint64
,您必须在使用前将其强制转换为类型。
注意(bis)size参数控制要转换的uint的最大大小,因此溢出检查正确完成。
答案 1 :(得分:1)
如果您有兴趣将 string
变成 []uint16
,您可以这样做:
package main
import (
"fmt"
"golang.org/x/sys/windows"
)
func main() {
a, e := windows.UTF16FromString("05f8")
if e != nil {
panic(e)
}
fmt.Printf("%q\n", a) // ['0' '5' 'f' '8' '\x00']
}
或者,如果您确定 string
不包含 NUL 字节,您可以这样做:
package main
import (
"fmt"
"golang.org/x/sys/windows"
)
func main() {
a := windows.StringToUTF16("05f8")
fmt.Printf("%q\n", a) // ['0' '5' 'f' '8' '\x00']
}