我想要一个带有 2 个按名称调用参数的方法,其中一个是可选的,但仍然在不带括号的情况下调用它。因此,您可以执行以下任一操作:
transaction { ... }
或者
transaction { ... } { ... }
我尝试(并解决了):
def transaction(body: => Unit) { transaction(body, {}) }
def transaction(body: => Unit, err: => Unit) { ... } // Works by transaction({ ... },{ ... })
这显然不同于(出于我不知道的原因):
def transaction(body: => Unit, err: => Unit = {}) { ... }
而我希望的那个会起作用(但我猜不是因为第一个参数列表是相同的)。
def transaction(body: => Unit) { transaction(body)() }
def transaction(body: => Unit)(err: => Unit) { ... }
您将如何使用可选的第二个按名称调用参数的概念?