我的功能的目的是爲了增加5成整數,只要該整數大於0和小於或等於7。我嘗試:對於整數範圍模式匹配
val add5Partial : PartialFunction[Int, Int] = {
case d if (0 < d <= 7) => d + 5;
}
我得到:
<console>:8: error: type mismatch;
found : Int(7)
required: Boolean
case d if (0 < d <= 7) => d + 5;
任何提示?
OM-NOM-NOM(通過@ OM-NOM-NOM說話......註釋的)有答案。據我所知,_no_普通的現代編程語言允許使用這種簡寫符號。還要注意,你不需要圍繞Scala的守護表達式和分號的最外括號,這是非常糟糕的風格!此外,當您使用上下文綁定語法時,只能在冒號左側放置一個空格。 –
@RandallSchulz python可以做到這一點。其實我已經看到scala郵件列表上的人也用scala完成了這個工作,但是還有一些額外的技巧。現在不能找到它。 –
複製http://stackoverflow.com/questions/1346127/can-a-range-be-matched-in-scala。 – Glenn