布尔人 - 科特林的int conversion依



是否没有内置的方式可以在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

相关内容

最新更新