1

在阅读本文档时,我对一些代码很陌生,Scala并且Java对一些代码感到困惑。这是代码。

val route =
      path("hello") {
        get {
          complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Say hello to akka-http</h1>"))
        }
      }

path("hello")trait的方法在哪里:

trait PathDirectives /*extends omitted*/ {

    def path[L](pm: PathMatcher[L]): Directive[L] = pathPrefix(pm ~ PathEnd)
   // the rest omitted
}

因此,当我们调用该path("hello")方法时,我们需要一个实现该特征的对象来调用它。但在示例中,它只是一个方法调用。就像一个静态方法。

我错过了什么?

4

1 回答 1

4

因此,当我们调用 path("hello") 方法时,我们需要一个实现该特征的对象来调用它。

是的,那个对象是akka.http.scaladsl.server.Directives. 不需要写的原因Directives.path是代码导入Directives._,所以可以Directives直接调用 ' 方法(类似于Java中的静态导入,只是方法不必是静态的)。

于 2016-10-30T18:19:10.060 回答