Scala函数调用

Seb*_*ian 3 parameters scala function

我在几个框架中发现了以下函数调用,在我看来,好像框架扩展了一些基类.一些例子:

within(500 millis)
Run Code Online (Sandbox Code Playgroud)

要么

"Testcase description" in
  { .... }
Run Code Online (Sandbox Code Playgroud)

第一个示例从akka返回持续时间为500毫秒的持续时间对象,第二个示例是从scalatest定义的测试用例.

我想知道如何实现这种行为以及如何调用它.

Itt*_*ayD 10

这是通过" Pimp my library " 技术完成的.

要将非现有方法添加到类中,可以定义一个隐式方法,该方法将该类的对象转换为具有以下方法的类的对象:

class Units(i: Int) {
  def millis = i
}

implicit def toUnits(i: Int) = new Units(i)


class Specs(s: String) {
  def in(thunk: => Unit) = thunk
}

implicit def toSpecs(s: String) = new Specs(s)
Run Code Online (Sandbox Code Playgroud)

另请参阅"Scala在哪里查找Implicits?"