Syntax 在Kotlin中增加可为null的Int的简单而好的方法
在Kotlin中增加可为null的Int的最简单、可读性最好的方法是什么?除此之外还有别的办法吗Syntax 在Kotlin中增加可为null的Int的简单而好的方法,syntax,kotlin,Syntax,Kotlin,在Kotlin中增加可为null的Int的最简单、可读性最好的方法是什么?除此之外还有别的办法吗 var myInt: Int? = 3 myInt = if(myInt!=null) myInt+1 else null 如果myInt是一个简单变量,这很好,但是当myInt是一个较长的表达式时,它会增长很长。您可以按可调用的方式调用操作符,如下所示: myInt = myInt?.inc() 请注意,inc()运算符不会改变其接收器的值,而是创建一个新值。这意味着以下语句不会更改myInt
var myInt: Int? = 3
myInt = if(myInt!=null) myInt+1 else null
如果myInt是一个简单变量,这很好,但是当myInt是一个较长的表达式时,它会增长很长。您可以按可调用的方式调用操作符,如下所示:
myInt = myInt?.inc()
请注意,inc()
运算符不会改变其接收器的值,而是创建一个新值。这意味着以下语句不会更改myInt
:
val myInt: Int? = null
myInt?.inc() // myInt still being null
都不是:
val myInt: Int? = 5
myInt?.inc() // myInt still being 5
使用
inc
。在Kotlin中,所有运算符都转换为方法调用。有关更多详细信息,请参阅
var myInt: Int? = 3
myInt = myInt?.inc()
请注意,我已将inc()
返回的值赋给myInt
,如下所示:
inc()和dec()函数必须返回一个值,该值将分配给使用了++或--操作的变量。它们不应该改变调用inc或dec的对象
最好的解决办法是一个
如果要按其他值递增,可以使用以下替代方法:
var myInt: Int? = 1
val n = myInt?.plus(1)
println(n)
这张照片是:
2
其他答案提供了较短的备选方案,我将介绍如何正确使用基本if结构:
var myInt: Int? = 3
if (myInt != null) myInt++
这与Java非常相似,您不必添加任何新的复杂层。您也可以使用
myInt?.plus(i)
,如果您想以任意数量递增。public val maxFailCount:Integer?=null maxFailCount?.toInt()
是否正常?@DevendraSingh是的,行运行时没有错误。但尽量不要在kotlin中使用Integer
类。改用Int
。IntelliJ还警告您这一点。
var myInt: Int? = 3
if (myInt != null) myInt++