2012-04-24 69 views

回答

2

編輯:對不起,我認爲我沒有翻譯這忠實,它是醜陋的。 myobj.item也可以爲空,因此你必須把它包在Option(_)

@Option(myobj).flatMap(i => Option(i.item)).flatMap(s => Option(s.subitem)).getOrElse("empty") 

@((for {o <- Option(myobj) 
     item <- Option(o.item) 
     subitem <- Option(item.subitem) 
    }).getOrElse("empty")) 

注知道playframework有這樣一個共同的情況下,一些額外的糖。

+0

使用第一個示例,我在'_.item'處找到了「類型不匹配;找到:models.MyModel required:Option [?]」(從點開始)。在第二個例子中,你忘了'}':) – 2012-04-24 14:28:56

+0

但是如果我用'.map'替換'.flatMap',它就可以工作!你知道爲什麼和有什麼不同? – 2012-04-24 14:30:24

相關問題