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

时间:2018-01-12 10:00:19

标签: syntax kotlin

在Kotlin中增加可空Int的最简单,最易读的方法是什么?还有其他方法吗?

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

如果myInt是简单的变量,那么这很好,但是当myInt表达更长时,它会变长很长。

5 个答案:

答案 0 :(得分:10)

您可以以可调用的方式调用运算符:

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

答案 1 :(得分:1)

其他答案提供了更短的替代方案,我将介绍如何正确使用基本的if-construct:

$product = new NTLMSoapClient(PRODUCT_URL);
/*$params_d = array('filter' => array(

),
                  'setSize' => 2);*/
$result = $product->ReadMultiple();
$productData = $result->ReadMultiple_Result->WebItems;

它与Java非常相似,您不必添加任何新的复杂功能。

答案 2 :(得分:0)

使用inc。在Kotlin中,所有运算符都转换为方法调用。有关详细信息,请参阅here

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

答案 3 :(得分:0)

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

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

  

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

答案 4 :(得分:0)

最佳解决方案是crgarridos'一个。

如果您想通过其他值增加,可以使用以下选项:

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

打印:

2