def test1(): Unit ={ val a = Array(0,1,2,3,4,5,6) val result = ((for(i <- a) yield { if(i > 4) Array("aaa","bbb") }).filter(p => p != BoxedUnit.UNIT)).map(f => f.asInstanceOf[Array[String]]).flatten // println(result(0).asInstanceOf[Array[String]].mkString(" ")) println(result.length) println(result.mkString(",")) }
這個測試讓我醉了。。。。。
如果yield中有BoxedUnit.UNIT類型,那個yield的結果會變成object,裏面的Array[String]類型也會變成不知道什麼的奇怪東西,然後必須要通過類型強轉才能回來。