2014-06-05 159 views
0

我碰到下面的方法來here如何調用這個scala方法?

implicit def toLazyOr[T](cons: Constraint[T]) = new { 
    def or(other: Constraint[T]) = Constraint { field: T => 
    cons(field) match { 
     case Valid => other(field) 
     case Invalid => Invalid 
    } 
    } 
} 

我定義toLazyOr方法,然後我想在我的代碼中使用它。但是,我不知道我該如何使用它。 我想:

val adminForm = Form(
mapping(
    "email" -> (email verifying toLazyOr(nonEmpty, minLength(4))) 
) 

和:

val adminForm = Form(
    mapping(
     "email" -> (email verifying toLazyOr(nonEmpty or minLength(4))) 
    ) 

兩者都沒有工作,我一時Scala的知識是非常基本的。 請幫忙。

回答

3

不知道很多關於遊戲:

如果隱式轉換爲範圍,下面應該工作:

val adminForm = Form(
    mapping(
    "email" -> (email verifying (nonEmpty or minLength(4))) 
)) 

這是對隱式轉換的東西:你不必給他們打電話明確。有關編譯器在何處查找含義的更多信息,請參見this answer