有人知道在Scala中是否可以实现这样的功能吗:
case class Thing(property:String)
def f(thing:Thing, prop:String = thing.property) = println(prop)
上述代码无法编译,会出现错误:error: not found: value thing
,位于thing.property
处。
以下展示了期望的行为:
f(Thing("abc"), "123") // prints "123"
f(Thing("abc")) // prints "abc"
我意识到我可以使prop
参数成为Option[String]
并在函数定义中进行检查,但我想知道在2.8.0版本的新命名/默认参数支持下是否有解决办法。