2015-05-29 16 views
1

我有這樣的功能:如果沒有隱式定義,我如何返回None或拋出異常?

case object Evaluator { 
    import Ordering.Implicits._ 
    def eval[T: Ordering](x: T, y: T): Boolean = Some(x < y) 
} 

我想,在這情況下,使用不支持發送對象eval函數返回None。 例如:

case object Bar 
assert(Evaluator.eval(Bar, 1) == None) 

我該怎麼做?

回答

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) 
}