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

是否可以在 Go 中将一个字节转换为空字符串?我试过了string(0),但结果是string长度为 1:


emptyString := ""

nullByte := 0

fmt.Printf("%T, %v - %T, %v", emptyString, len(emptyString), string(nullByte), len(string(nullByte)))

输出:


string, 0 - string, 1

我想这样做的原因是我有一个函数,它接受 abyte并将其转换为 a string,并且我想为这个函数提供空字符串。


守着星空守着你
浏览 278回答 1
1回答

catspeake

空字符串""有 0 个字节。如果您有一个字节并将其转换为string,则结果字符串将有一个rune等于该 1 个字节的单个字节(甚至可以在 UTF-8 中编码为多个字节)。规格:转换:将有符号或无符号整数值转换为字符串类型会生成一个包含整数的 UTF-8 表示形式的字符串。所以很明显你不能将一个字节转换为一个有 0 个字节的字符串,不管那个字节是什么。转换“最有希望的候选者”:byte(0)将产生一个带有单个0字节的字符串:"\x00"或(在Go Playground[]byte{0}上尝试)。另请注意,在您的示例中,您正在转换int(type of nullByteis int),但规范中引用的相同部分适用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go