如何将 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? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在golang中将bool转换为int8 [重复]

vs里面bool类型如何转换为string类型

怎么将bool类型的值转换为char类型的值

为啥用!!将 int 转换为 bool 时?

不能将 int 转换为 bool

Swift 3 转换获取 'Int1' 不能转换为 'Bool'