【问题标题】:How do I turn a bool into an int? [duplicate]如何将 bool 转换为 int? [复制]
【发布时间】:2015-10-07 22:50:31
【问题描述】:

我习惯了 C/Java,我可以在哪里使用 ?: 如:

func g(arg bool) int {
  return mybool ? 3 : 45;
}

自从Go does not have a ternary operator, 我该怎么做?

【问题讨论】:

标签: go


【解决方案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]int{true: 3, false: 45})[mybool] // 见play.golang.org/p/7fDTkm_kKX
猜你喜欢
  • 2017-02-24
  • 1970-01-01
  • 2011-05-25
  • 2015-12-01
  • 2019-05-17
  • 2011-09-09
  • 1970-01-01
  • 2013-01-03
  • 2014-09-19
相关资源
最近更新 更多