为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在 Go 中使用 `string()` 将一个字节转换为空字符串?

是否可以在 Go 中使用 `string()` 将一个字节转换为空字符串?

Go
守着星空守着你 2022-04-26 14:52:53
是否可以在 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 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

空字符串""有 0 个字节。如果您有一个字节并将其转换为string,则结果字符串将有一个rune等于该 1 个字节的单个字节(甚至可以在 UTF-8 中编码为多个字节)。规格:转换:

将有符号或无符号整数值转换为字符串类型会生成一个包含整数的 UTF-8 表示形式的字符串。

所以很明显你不能将一个字节转换为一个有 0 个字节的字符串,不管那个字节是什么。转换“最有希望的候选者”:byte(0)将产生一个带有单个0字节的字符串:"\x00"或(在Go Playground[]byte{0}上尝试)。

另请注意,在您的示例中,您正在转换int(type of nullByteis int),但规范中引用的相同部分适用。


查看完整回答
反对 回复 2022-04-26
  • 1 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号