Scallop库中的自定义转换器

时间:2016-05-24 19:01:14

标签: scala reflection

我正在尝试使用Scallop(https://github.com/scallop/scallop/)来解析Scala中的命令行参数。

但是,我无法编译将参数转换为案例类的示例,如https://github.com/scallop/scallop/wiki/Custom-converters所示。

我在编译时遇到两个错误:

[error]  found   : org.rogach.scallop.ValueConverter[center.scala.sbk.Commands.Person]{val nameRgx: scala.util.matching.Regex; val phoneRgx: scala.util.matching.Regex}
[error]  required: String
[error] Error occurred in an application involving default arguments.
[error]     val person = opt[Person](personConverter)
[error]                              ^

[error] ...: could not find implicit value for parameter conv: org.rogach.scallop.ValueConverter[center.scala.sbk.Commands.Person]
[error] Error occurred in an application involving default arguments.
[error]     val person = opt[Person](personConverter)
[error]                             ^

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

文档有拼写错误。 使用

@foreach

而不是

val person = opt[Person]()(personConverter) // note the parentheses

因为val person = opt[Person](personConverter) 是在隐式参数中传递的。