我想把uint8
转换成字符串,但不知道怎么做。
package main
import "fmt"
import "strconv"
func main() {
str := "Hello"
fmt.Println(str[1]) // 101
fmt.Println(strconv.Itoa(str[1]))
}
Example
这就是prog.go:11: cannot use str[1] (type uint8) as type int in function argument [process exited with non-zero status]
你知道吗?
5条答案
按热度按时间o0lyfsai1#
只需转换即可:
dxpyg8gm2#
转换它或强制转换它之间存在差异,请考虑:
字符串类型转换打印"\n“(换行符),字符串转换打印“10”。一旦你注意到两个变体的[]byte转换,差别就变得很明显了:
see this code in play.golang.org
wsxa1bj13#
你可以通过使用铸造来做得更简单,这对我很有效:
zqdjd7g94#
Go语言表达式中没有基本类型的自动转换,参见https://talks.golang.org/2012/goforc.slide#18,
byte
(uint8
的别名)或[]byte
([]uint8
)必须设置为bool、number或string。Sprintf("%s", b)
可以用来把[]byte{'G', 'o' }
转换成字符串“Go”。你可以用Sprintf
把任何int类型转换成字符串。参见https://stackoverflow.com/a/41074199/12817546。但是
Sprintf
使用反射,参见https://stackoverflow.com/a/22626531/12817546中的注解,使用Itoa
(整数到ASCII)更快,参见@DenysSéguret和https://stackoverflow.com/a/38077508/12817546。mgdq6dx15#
使用
%c