如何将 bool 转换为 int? [复制]
Posted
技术标签:
【中文标题】如何将 bool 转换为 int? [复制]【英文标题】:How do I turn a bool into an int? [duplicate] 【发布时间】:2015-10-07 22:50:31 【问题描述】:我习惯了 C/Java,我可以在哪里使用 ?: 如:
func g(arg bool) int
return mybool ? 3 : 45;
自从Go does not have a ternary operator, 我该怎么做?
【问题讨论】:
***.com/questions/19979178/… 【参考方案1】:您可以使用以下内容:
func g(mybool bool) int
if mybool
return 3
else
return 45
我生成了一个playground 供你测试。
正如 Atomic_alarm 和 FAQ 所指出的,“Go 中没有三元形式。”
作为对“如何将 bool 转换为 int”的问题的更一般的回答,程序员通常期望 true 为 1,false 为 0,但 go 在 bool 和 int 之间没有直接转换,例如int(true)
或 int(false)
将起作用。
在这种情况下,您可以像在VP8 中那样创建普通函数:
func btou(b bool) uint8
if b
return 1
return 0
【讨论】:
我最喜欢你的回答,但是当我在你链接的操场上时,我看到了另一个引用的问题并做了这个丑陋的单行:return (map[bool]inttrue: 3, false: 45)[mybool] // 见play.golang.org/p/7fDTkm_kKX以上是关于如何将 bool 转换为 int? [复制]的主要内容,如果未能解决你的问题,请参考以下文章