Scala yield unit 測試

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]類型也會變成不知道什麼的奇怪東西,然後必須要通過類型強轉才能回來。



發佈了81 篇原創文章 · 獲贊 7 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章