0
我是Scala和Play Framework的新手,所以我不太清楚什麼是錯的。我正在嘗試解壓由Slick DB控制器(Play Framework)提供的Future [Option [MyType]]。 MyType在代碼中稱爲BoundingBox:在Scala中解包未來[Option [MyType]]
def getBoundingBoxByFileName(name: String) = {
val selectByName = boundingBoxTableQuery.filter{ boundingBoxTable =>
boundingBoxTable.name === name
}
db.run(selectByName.result.headOption)
}
BoundingBox類型有一個名爲product_name的字段。要獲得這個領域我做到以下幾點:
val boundingBoxFutOpt = BoundingBoxQueryActions.getBoundingBoxByFileName("some_file")
val res = for {
optBb : Option[db.BoundingBox] <- boundingBoxFutOpt
} yield{
for(bb : db.BoundingBox <- optBb) yield {
println(s"${bb.product_name}")
}
}
此代碼不會對輸出產生任何東西,但我沒有編譯錯誤。如果我爲某些隨機文本(不使用bb引用)更改println語句,則它也不會打印在控制檯上。對我來說,似乎println語句永遠不會被執行。
我會欣賞這個問題的一些方向。
非常感謝!這個伎倆 – Ivan