Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function Scala函数调用_Function_Scala_Parameters - Fatal编程技术网

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)