Go 中是否可以将一个字节转换为空字符串?我试过了string(0),但结果是string长度为1:emptyString := ""nullByte := 0fmt.Printf("%T, %v - %T, %v", emptyString, len(emptyString), string(nullByte), len(string(nullByte)))输出:string, 0 - string, 1我想这样做的原因是我有一个函数,它接受 abyte并将其转换为 a string,并且我想向该函数提供空字符串。
1 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
空字符串""
有 0 个字节。如果您有一个字节并将其转换为string
,则结果字符串将具有rune
等于该 1 个字节的单个字节(甚至可能以 UTF-8 编码为多个字节)。规格: 转换:
将有符号或无符号整数值转换为字符串类型会生成一个包含该整数的 UTF-8 表示形式的字符串。
显然,无论该字节是什么,都无法将字节转换为 0 字节的字符串。转换“最有希望的候选者”:byte(0)
将产生一个带有单个0
字节的字符串:"\x00"
或(在Go Playground[]byte{0}
上尝试)。
另请注意,在您的示例中,您正在转换int
( 类型为nullByte
) int
,但规范中相同的引用部分适用。
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报
0/150
提交
取消