我创建了以下代码片段:
class PimpToRight[A](f: A => Boolean) {
def <| (a: A) = f(a)
}
implicit def f2pimp[A](f: A => Boolean) = new PimpToRight(f)
class PimpToLeft[A](a: A) {
def <|: (f: A => Boolean) = f(a)
def |> (f: A => Boolean) = f(a)
}
implicit def a2pimp[A](a: A) = new PimpToLeft(a)
Run Code Online (Sandbox Code Playgroud)
有可用的右关联和左关联方法.
以下代码有效:
((_: Int) > 3) <| 7
((_: Int) > 3) <|: 7
7 |> (_ > 3)
Run Code Online (Sandbox Code Playgroud)
但这不是:
(_ > 3) <| 7
(_ > 3) <|: 7
Run Code Online (Sandbox Code Playgroud)
是否可以从右到左推断类型参数?
这两个问题是相关的:SI-4773和SI-1980.基于这些问题,你的问题的答案似乎是否定的.虽然与你的问题没有直接关系,但是Paul Chiusano 在Scala中充分利用了类型推断是一个非常好的帖子,它解决了Scala中当前的类型推断状态并提供了一些有用的建议.
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |