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

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

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

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

5 Solutions collect form web for “在Kotlin中增加可空Int的简单而好的方法”

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

 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中,你不必添加任何新的复杂层。

  • 如何从一个枚举类和kotlin中的一个字符串获取原始types的枚举值
  • Kotlin:访问when语句的参数
  • 匕首2:无法在Intellij Idea(Kotlin)中find生成的类
  • Kotlintypes方差和星形投影
  • 如何从字符串获得可选的? 和字符串在Kotlin
  • 一个variables不能赋值为2
  • Lambda在kotlin中的接口实现
  • 在比较中无视Triple的组件
  • NPE构造函数和超类
  • 断言与Kotin中的错误消息
  • 我可以省略Kot​​lin中不使用的接口方法吗?
  • Kotlin language will be the best programming language for Android.