在Kotlin中没有内置的方法在boolean - int之间进行转换吗?我在谈论平常:
true -> 1
false -> 0
如果没有,那么这是一种惯用的方法吗?
答案 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