scala - 查找 Array[Int] 的第一个空值

标签 scala testing null

我正在使用 Scala,但如何测试一个值是否为空?特别是在 Array[Int] 中

在java中是:

if( tab[i] == null )

在 scala 上,同样的测试,ide 说:

comparing values of types Int and Null using `==' will always yield false

谢谢

最佳答案

来自 scala.Null 的文档:

Null is not a subtype of value types

如果您打开一个 Scala session 并创建一个包含 5 个元素的 Array[Int],您可以看到它们都被初始化为默认值,0:

val a: Array[Int] = new Array[Int](5)             
//> a  : Array[Int] = Array(0, 0, 0, 0, 0)

所以要找到你的第一个未初始化的元素,假设 0 不是你数组的有效值,那么你只需要做 a indexOf 0,并测试单个元素,只需测试谓词 a(i) == 0,例如:

val a: Array[Int] = new Array[Int](5)             
  //> a  : Array[Int] = Array(0, 0, 0, 0, 0)
//  set some dummy elements for the first few entries
for (i <- 0 to 3) a(i) = (i+ 1)
// find the entry
a indexOf 0                                       
  //> res0: Int = 4
a map (_ == 0)                                    
  //> res1: Array[Boolean] = Array(false, false, false, false, true)

关于scala - 查找 Array[Int] 的第一个空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33441531/

相关文章:

ruby-on-rails - 我应该将我的数据库查询测试放在 Rails 中的什么位置?

java - 如何对空参数进行方法重载?

php - Laravel Mock Facade shouldReceive 未按预期工作

testing - 使 Grails Geb 测试具有事务性

scala - 我可以在 Scala 中有一个负值作为常量表达式吗?

scala - 如何将期权与 Kleisli 组合

c++ - 在 C 或 C++ 中,我应该根据 NULL/nullptr 检查指针参数吗?

c# - 检查 : null vs default()?

scala - Scala中Singleton这个词的含义

Scala 通用函数假设类型