Go语言 转到文本/模板:如何将bool转换为int 0/1?

jhkqcmku  于 2022-12-07  发布在  Go
关注(0)|答案(2)|浏览(314)

在Go语言text/template中,如何将bool转换为int(false=0,true=1)?
下面是一个使用goproc工具的示例,该工具允许从命令行执行模板:

$ echo false | goproc -e '{{.}} => <template here>'
false => 0
$ echo true | goproc -e '{{.}} => <template here>'
true => 1
k10s72fa

k10s72fa1#

这可能是最简单的:

digitizeBoolTemplate := "{{if . }}1{{else}}0{{end}}"

https://goplay.tools/snippet/T6EwkKLNmhG

iqjalb3h

iqjalb3h2#

下面是一个黑客:使用index内置函数从巧尽心思构建的字符串中提取字节值,该字符串在位置5和4分别包含字节0和1。字符串"true"/"false"的长度用作索引值。

$ echo false | goproc -e '{{.}} => {{index "....\001\000" (len (print .))}}{{"\n"}}'
false => 0
$ echo true | goproc -e '{{.}} => {{index "....\001\000" (len (print .))}}{{"\n"}}'
true => 1

相关问题