符号的含义:+:在Scala中?

时间:2016-11-21 09:37:25

标签: scala functional-programming

符号是什么:+:在Scala编程语言中是什么意思?

  object Devices {
  private[endpoints] def endpoints(myService: MyService[Future], pService: PService[Future]) =
    "devices" / (
      banDevice(myService, pService) :+:
      unbanDevice(myService, pService)
    )

这是代码段。我正在使用finagle库。

  • 我已经读过scala可以将函数名称作为符号。这是一个例子吗?
  • 我在哪里可以找到这种finagle定义方法的防范?
  • 是否可以覆盖这些方法?

2 个答案:

答案 0 :(得分:4)

Scala没有此功能,它可以位于您正在使用的某个库中。根据你的代码,你可能正在使用finagle!

因此Peter Neyens指出:https://github.com/finagle/finch/blob/master/docs/endpoint.md#coproduct-endpoints

似乎解释了你想要找到的东西。

P.s:它只是其中一个库中的一种方法而没有别的。

答案 1 :(得分:2)

回答您的最新问题:

  • 是的,该代码正在调用名为:+:的函数(实际上是一种方法)。
  • 您可以在线发布API(可能是here)。
  • 如果课程不是sealed且方法不是final那么,是的,您应该可以覆盖它。