0
如何進行模式匹配以匹配所有元素直到最後一個元素?Scala:字符串開頭的模式匹配零或更多
例如,假設我有這樣的unapplySeq:
object MyObject {
def unapplySeq(money: String): Option[List[Char]] = {
val amount = money.trim.toList
if (amount.isEmpty) None
else
Some(amount)
}
}
我嘗試以下匹配:
"12.15 €" match {
case MyObject('$' , last @ _*) => s"${last.mkString} dollars"
// this is wrong
case MyObject(first @ _*, '€') => s"${last.mkString} euro"
case _ => "Unknown format"
}
我能爲美國達在那裏我通過例如120.10 $做到這一點,但我如何重寫第二種情況以匹配符號在最後的歐元字符串?
謝謝。我想過正則表達式,可能會朝着這個方向發展。然而,似乎任何人認爲實施以前的方法會被鳥或松鼠等分散注意力,並且沒有考慮實施其他常見變化。我試圖確保我沒有錯過我發佈的非正則表達式方法。 – 2015-02-06 23:20:10