Function Scala函数调用
我在几个框架中发现了以下函数调用,在我看来,这些框架似乎扩展了一些基类。一些例子:Function Scala函数调用,function,scala,parameters,Function,Scala,Parameters,我在几个框架中发现了以下函数调用,在我看来,这些框架似乎扩展了一些基类。一些例子: within(500 millis) 或 第一个示例从akka返回一个持续时间为500毫秒的duration对象,第二个示例从scalatest返回testcase的定义 我想知道这种行为是如何实现的,它是如何被称为 如果我没弄错的话,这些代码片段可以按 within(500.millis) 及 这将使您更容易看到正在发生的事情。这是通过“”完成的 若要向类添加不存在的方法,请定义一个隐式方法,该方法将该类的
within(500 millis)
或
第一个示例从akka返回一个持续时间为500毫秒的duration对象,第二个示例从scalatest返回testcase的定义
我想知道这种行为是如何实现的,它是如何被称为 如果我没弄错的话,这些代码片段可以按
within(500.millis)
及
这将使您更容易看到正在发生的事情。这是通过“”完成的
若要向类添加不存在的方法,请定义一个隐式方法,该方法将该类的对象转换为具有该方法的类的对象:
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)
另请参见是的,我知道,但是类整数必须有一个成员“millis”,或者字符串必须有一个成员“in”,而它们没有have@Sebastian当前位置我猜有某种隐式转换正在进行,但我的Scala fu尚未达到该级别,因此我不确定。这种行为是由。因此,有一些关于它的问题,请在
pimp my library
后搜索。您问题的标题可以更具描述性。
"Testcase description".in({ ... })
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)