我有以下代码片段:
const byte1 = 0x19;
const byte2 = 0x45;
msg := fmt.Sprintf("\\x%x\\x%x message", byte1, byte2)
log.Info("Learning go fmt", "msg", msg)
我明白了:
msg="\\x19\\x45 message"
为什么反斜杠重复?根据这个网站,\\
内一个格式应该yield \
。
@nilsocket 的评论是正确的。问题是我正在使用以太坊日志包。它对字符串进行转义。如果我做:
fmt.Println("\\x%x\\x%x message", byte1, byte2)
它工作得很好。