练习这里写的内容:ScalaForms,我创建了以下表格:
val personCreationForm = Form(
tuple (
"name" -> nonEmptyText,
"age" -> number verifying (min(0), max(100)) /*ERROR*/
) verifying ("Wrong entry", result => result match {
case (name, age) => true
})
)
但是,verifying
上的错误表明value verifying is not a member of (java.lang.String, play.api.data.Mapping[Int])
。
使用mapping
代替tuple
,如引用的示例所示,没有任何区别。这有什么不对?
答案 0 :(得分:9)
根据Scala operators precedence rules,以字母开头的方法的优先级低于其他方式,所以当你写的时候:
"age" -> number verifying (min(0), max(100))
编译器构建以下表达式:
("age" -> number) verifying (min(0), max(100))
这不是你想要的!您可以按如下方式重写它:
"age" -> number.verifying(min(0), max(100))
"age" -> (number verifying (min(0), max(100)))
目前的Play文档是错误的。谢谢你抓住它!