http(/*参数在这里*/)如何在没有显式或隐式方法的情况下使用此Object(Http)?

Ran*_*din 3 scala databinder scala-dispatch

在使用Databinder Dispatch使用Json进行编码的示例中,Nathan使用了一个没有方法的Object(Http),如下所示:

import dispatch._
import Http._
Http("http://www.fox.com/dollhouse/" >>> System.out )
Run Code Online (Sandbox Code Playgroud)

他是怎么做到的?

谢谢你所有的答案,不幸的是我不够具体......

看起来它只是将一个参数传递给类或伴随对象Http的构造函数.

在另一个例子中,我看到了另一种形式:

http = new Http
http(/* argument here */)
Run Code Online (Sandbox Code Playgroud)

这是有效的Scala吗?我想它一定是,因为作者是Scala专家.但这对我没有意义.动作通常通过调用对象上的方法来执行,无论是显式地为object.doSomething()还是隐式地为object = something(使用语法糖下的apply()方法).

我能想到的是构造函数除了用于构造对象之外还用于执行某些操作.换句话说,它具有副作用,例如在这种情况下,在网络上做一些事情.

Fab*_*eeg 6

它的工作原理是定义一个apply在对象上调用的方法.如果存在这样的方法,则可以将参数应用于对象本身 - 这意味着在内部将参数传递给apply方法.