在Kotlin中增加可空Int的简单而好的方法

什么是在Kotlin中增加可空Int的最简单和最好的可读方法? 除了这样做还有别的方法吗?

var myInt: Int? = 3 myInt = if(myInt!=null) myInt+1 else null 

如果myInt是简单的variables,这是相当好的,但是当myInt是更长的expression式时它可以长得很长。

您可以通过以下方式调用运营商:

 myInt = myInt?.inc() 

使用inc 在Kotlin中,所有的操作符都被转换成方法调用。 在这里看到更多的细节。

 var myInt: Int? = 3 myInt = myInt?.inc() 
 var myInt: Int? = 3 myInt = myInt?.inc() 

请注意,我已经将inc()返回的值分配给myInt ,因为文档声明了以下内容:

inc()和dec()函数必须返回一个值,该值将被分配给使用++或 – 操作的variables。 他们不应该改变调用inc或dec的对象。

最好的解决方案是crgarridos的一个。

如果你想增加其他值,这是一个替代方案:

 var myInt: Int? = 1 val n = myInt?.plus(1) println(n) 

这打印:

 2 

其他答案提出了更短的选择,我将介绍如何正确使用基本的if结构:

 var myInt: Int? = 3 if (myInt != null) myInt++ 

这很像在Java中,你不必添加任何新的复杂层。