相关疑难解决方法(0)

如何简洁地检查Scala中的null或false?

在Groovy语言中,检查null或更false喜欢它非常简单:

常规代码:

def some = getSomething()
if(some) {
// do something with some as it is not null or emtpy 

}
Run Code Online (Sandbox Code Playgroud)

在Groovy中,如果somenull或是空字符串或是零数字等将评估为false.在Scala中nullfalseScala 中测试的类似简洁方法是什么?这部分问题的简单答案是什么,假设some只是Java类型的String?

另外一个更好的方法是groovy:

def str = some?.toString()
Run Code Online (Sandbox Code Playgroud)

这意味着如果some不是null,则toString在方法some将被调用,而不是在壳体投掷NPE somenull.Scala有什么相似之处?

null scala

31
推荐指数
6
解决办法
4万
查看次数

Scala中`null == last`和`null eq last`之间有什么区别?

我在MessageQueue.scalascala 2.7.7 的内置类中看到,在第164行附近,它是:

def extractFirst(p: Any => Boolean): MessageQueueElement = {
changeSize(-1) // assume size decreases by 1

val msg = if (null eq last) null
else {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我不太了解val msg = if (null eq last) null,为什么使用eq,但不是null.如果我写if (last==null) null,是否正确?有什么区别吗?

scala equals

7
推荐指数
1
解决办法
1018
查看次数

标签 统计

scala ×2

equals ×1

null ×1