显然Range
有一个方法来检查它是否包含Any类型的值。我知道它是从SeqLike
,但会导致一些问题。Scala范围包含(elem:Any)方法
例如,我是从joda.DateTime匹配小时:
DateTime.now match {
case d if 0 to 12 contains d.hourOfDay() => ...
这里d.hourOfDay()返回DateTime.Property,不中等,但仍代码编译由于contains(elem: Any)
。有没有办法在编译时检查这种调用?
是的......但也许应该有某种类型的编译器警告调用这种方法。在类型安全的语言中出现这样的运行时错误似乎是错误的。 – F0RR
我很想拥有一个能够产生更多/更好的警告的插件。有这样的事吗? – ziggystar
@ziggystar我不知道一个。我不知道编译器甚至可以告诉你这不是你想要的东西,而不是贬低该方法(这可能是正确的解决方案,但它有其他问题...) – Owen