我正在使用 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/