是否没有内置的方式可以在boolean -int -kotlin中转换?我说的是通常的:
true -> 1
false -> 0
如果没有,什么是惯用方法?
您可以编写布尔的扩展功能
fun Boolean.toInt() = if (this) 1 else 0
为每个项目编写此任务的功能可能有些乏味。有一个Kotlin功能可以使用它来实现此目标。
使用compareTo
如果变量为大于 input,它将输出 1 ,如果等于它将输出 0 并且如果小于输入,它将输出 -1
因此,您可以将其用于此任务:
v.compareTo(false) // 0 or 1
您可以使用 Extension属性在这种情况下扩展Boolean
:
val Boolean.int
get() = if (this) 1 else 0
现在您可以简单地在代码中进行true.int
没有任何方法可以转换。您只能通过以下以下代码进行转换
val output = if (input) 1 else 0
向API提出请求,该API返回0或1的字段,该字段显然是正确的/fals。同时,我还向相同类型的字段提出其他请求,这些字段使我回到了TRUE/FALSE。我想分享处理所有API的响应的代码。
在这种情况下,我认为使用映射库(杰克逊等)的转换器将是最佳选择。
在普通Kotlin中,您可以为此目的使用扩展功能/属性。
使用以下:
val Boolean?.int
get() = if (this != null && this) 1 else 0
true示例(暗示错误):
val boolValue = 1
val booleanResult = boolValue != 0 // true