ibeautiful
2023-08-14 16:32:05
Go 中是否可以將一個(gè)字節(jié)轉(zhuǎn)換為空字符串?我試過(guò)了string(0),但結(jié)果是string長(zhǎng)度為1:emptyString := ""nullByte := 0fmt.Printf("%T, %v - %T, %v", emptyString, len(emptyString), string(nullByte), len(string(nullByte)))輸出:string, 0 - string, 1我想這樣做的原因是我有一個(gè)函數(shù),它接受 abyte并將其轉(zhuǎn)換為 a string,并且我想向該函數(shù)提供空字符串。
1 回答

叮當(dāng)貓咪
TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
空字符串""
有 0 個(gè)字節(jié)。如果您有一個(gè)字節(jié)并將其轉(zhuǎn)換為string
,則結(jié)果字符串將具有rune
等于該 1 個(gè)字節(jié)的單個(gè)字節(jié)(甚至可能以 UTF-8 編碼為多個(gè)字節(jié))。規(guī)格: 轉(zhuǎn)換:
將有符號(hào)或無(wú)符號(hào)整數(shù)值轉(zhuǎn)換為字符串類(lèi)型會(huì)生成一個(gè)包含該整數(shù)的 UTF-8 表示形式的字符串。
顯然,無(wú)論該字節(jié)是什么,都無(wú)法將字節(jié)轉(zhuǎn)換為 0 字節(jié)的字符串。轉(zhuǎn)換“最有希望的候選者”:byte(0)
將產(chǎn)生一個(gè)帶有單個(gè)0
字節(jié)的字符串:"\x00"
或(在Go Playground[]byte{0}
上嘗試)。
另請(qǐng)注意,在您的示例中,您正在轉(zhuǎn)換int
( 類(lèi)型為nullByte
)?int
,但規(guī)范中相同的引用部分適用。
- 1 回答
- 0 關(guān)注
- 189 瀏覽
添加回答
舉報(bào)
0/150
提交
取消