假设我有一个参数,它的值是一个带有一系列转义字符的字符串:
strct.Data = "{ \"hello\": \"ok\", \r\n \"text\": \"value\" }"
当我在模板中打印时,假设模板标记为:
value = `{{ .Data }}`
渲染输出变为:
value = `{ "hello": "ok",
"text": "value"
}`
是否有任何内置功能允许打印RAW文本(完全按原样打印)?以便实现以下输出:
value = `{ "hello": "ok", \r\n "text": "value" }`
1条答案
按热度按时间ltskdhd11#
编译器解释反斜杠转义。转义序列在运行时不存在。
要打印带有Go语言字符串转义序列的字符串,可以使用printf函数和引号动词,注意这里打印的是
\"
。https://go.dev/play/p/2g8pGdEMkqx
要获得问题中请求的输出,请在将字符串传递给模板之前用转义序列替换回车和换行符。
https://go.dev/play/p/_eySCGZnHkA
另一种选择是在原始字符串中包含反斜杠:
https://go.dev/play/p/xTdecKbS0fn