在这种情况下,tilde arrow的含义是什么?

nin*_*ine 5 scala akka spray

这是来自https://github.com/eigengo/activator-spray-twitter/blob/master/src/main/scala/core/tweetstream.scala的代码

什么〜>(波浪号箭头)运算符呢?我认为必须是HttpRequest的运营商,但我在喷涂API中找不到这样的运算符.

我可以计算出该授权是它返回一个函数(HttpRequest的=>的HttpRequest),所以VAL RQ必须是一个的HttpRequest其返回由授权返回的函数施加后的值.

def receive: Receive = {
    case query: String =>
      val body = HttpEntity(ContentType(MediaTypes.`application/x-www-form-urlencoded`), s"track=$query")
      val rq = HttpRequest(HttpMethods.POST, uri = uri, entity = body) ~> authorize
      sendTo(io).withResponsesReceivedBy(self)(rq)
    case ChunkedResponseStart(_) =>
    case MessageChunk(entity, _) => TweetUnmarshaller(entity).fold(_ => (), processor !)
    case _ =>
  }
Run Code Online (Sandbox Code Playgroud)

提前致谢!

rom*_*oll 3

运算符只是一个函数,并且它是隐式定义的,请参见此处的第 32 行

只需将其视为compose即可。该运算符获取左侧的值,并将其作为输入填充到右侧的函数中。

有关如何自己查找此类内容的提示:将项目加载到 intellij idea 或 scala-IDE 中,然后按住 ctrl 键单击该符号。IDE 将带您进行定义。