我有这个功能:
case object Evaluator {
import Ordering.Implicits._
def eval[T: Ordering](x: T, y: T): Boolean = Some(x < y)
}
我希望如果用户将不受支持的对象发送到eval函数以返回None。 e.g:
case object Bar
assert(Evaluator.eval(Bar, 1) == None)
我该怎么做?
答案 0 :(得分:4)
尝试为隐式参数提供默认值。
case object Evaluator{
import Ordering.Implicits._
def eval[T](x: T, y: T)(implicit ev:Ordering[T] = null):Boolan =
if(ev == null)
None
else
Some(x < y)
}