在斯卡拉(2.9.2)我想创建访问斯卡拉按名称参数有多个参数列表和柯里
() => Any
的时候我还以为是通过成功地这样做,它提供了一些其他值的函数按名称/柯里化的解决方案:
def byName(theValue : => Any)() : Any = theValue
val myHolder = byName(myValue)_
所以我的持有人是正确的类型。但是我发现在创建这个curried函数的过程中,通过名称参数进行评估。如果我做了以下,而不是它的工作原理像预期一样:
def byName(theValue : => Any) : Any =() => theValue
val myHolder = byName(myValue)
我总结出钻营过程的某些部分所引用的第一个参数列表,并触发其评价。任何人都可以确认和/或解释为什么或者是否有任何有关使用多参数列表的名称参数的指导原则?
我相信这个错误是:https://issues.scala-lang.org/browse/SI-302 – Steve
好吧,发现了。从评论看来,它是固定在斯卡拉2.10-M4。 –
完美 - 谢谢澄清。 –