查找数组的第一个空值[Int]

时间:2015-10-30 17:20:13

标签: scala testing null

我使用scala但是如果测试值是否为null则如何测试?特别是在Array [Int]

在java中:

if( tab[i] == null )

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

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

谢谢你

1 个答案:

答案 0 :(得分:3)

来自scala.Null的文档:

  

Null不是值类型的子类型

如果您打开Scala会话并创建一个包含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)