3
我是一名Scala初學者,這段代碼讓我很困惑。在scala中對一系列值進行模式匹配
有沒有辦法做模式匹配,以確保我傳遞給數據的所有內容都是正確的類型?正如你可以看到我有很奇怪的數據類型...
class Data (
val recipient: String,
val templateText: String,
val templateHtml: String,
val blockMaps: Map[String,List[Map[String,String]]],
templateMap: Map[String,String]
)
...
val dataParsed = JSON.parseFull(message)
dataParsed match {
case dataParsed: Map[String, Any] => {
def e(s: String) = dataParsed get s
val templateText = e("template-text")
val templateHtml = e("template-html")
val recipient = e("email")
val templateMap = e("data")
val blockMaps = e("blkdata")
val dependencies = new Data(recipient, templateText, templateHtml, blockMaps, templateMap)
Core.inject ! dependencies
}
...
謝謝你的回答,但它實際上不起作用。我不確定我在做什麼,但是在使用ant進行編譯時,我遇到了這個錯誤。 錯誤:模式類型與預期類型不兼容; [scalac]實測值:字符串 [scalac]需要:選項[任意] [scalac] \t \t \t \t如果s:字符串=>一些(一個或多個) 停止向串,地圖似乎是細.. – flagZ 2009-11-27 19:25:18
包裹每個值與Some解決了這個問題。 case(一些(templateText:String),一些(...)) 感謝開始壽 – flagZ 2009-12-03 14:32:51