Boolean - Kotlin中的Int转换

时间:2017-09-25 09:30:03

标签: kotlin

在Kotlin中没有内置的方法在boolean - int之间进行转换吗?我在谈论平常:

true -> 1
false -> 0

如果没有,那么这是一种惯用的方法吗?

6 个答案:

答案 0 :(得分:39)

你可以写一个像

这样的布尔函数的扩展函数
fun Boolean.toInt() = if (this) 1 else 0

答案 1 :(得分:6)

在这种情况下,您可以使用扩展属性扩展Boolean

val Boolean.int 
     get() = if (this) 1 else 0

现在您只需在代码中执行true.int

答案 2 :(得分:4)

为每个项目为此任务编写功能可能有点乏味。 有一个kotlin函数,您可以使用它来实现此目的。

使用compareTo,如果变量大于,它将输出 1 ,如果变量等于,则将输出 0 ,如果输入的小于,则会输出 -1

因此您可以将其用于以下任务:

v.compareTo(false) // 0 or 1

答案 3 :(得分:3)

  

向一个返回0或1的API请求明确为true / false的字段。同时,我还对类似API的其他请求做出了相同类型的字段,这些字段给我回真/假。我想分享处理来自所有API的响应的代码。

在这种情况下,我认为使用映射库的转换器(jackson等)将是最好的选择。

在普通的Kotlin中,您可以使用扩展功能/属性来实现此目的。

答案 4 :(得分:1)

没有办法转换。您只能通过以下代码进行转换

x(tstar), x'(tstar)

答案 5 :(得分:1)

使用它:

val Boolean?.int
    get() = if (this != null && this) 1 else 0