【发布时间】:2012-12-27 18:52:31
【问题描述】:
我的函数的目的是对一个整数加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 有答案。据我所知,no 常见的现代编程语言允许使用您使用的那种速记符号。还要注意,您不需要围绕守卫表达式的最外层括号,Scala 中的分号是非常糟糕的风格!此外,仅在使用上下文绑定语法时在冒号左侧放置一个空格。
-
@RandallSchulz python 可以做到这一点。实际上,我已经看到 scala 邮件列表中的某个人也使用 scala 完成了此操作,但还有一些额外的技巧。现在找不到了。