我使用scala但是如果测试值是否为null则如何测试?特别是在Array [Int]
中在java中:
if( tab[i] == null )
在scala上,同样的测试,ide说:
comparing values of types Int and Null using `==' will always yield false
谢谢你
答案 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)