Gre*_*idt 2 scala function implicit
我想定义一个带有一个显式参数和一个隐式参数的函数,如下所示:
def foo(a: Int)(implicit b: Int) : Int
Run Code Online (Sandbox Code Playgroud)
但作为一个类或对象,就像这样
object Foo extends ((Int,Int) => Int) {
def apply(a: Int)(implicit b: Int) : Int = { ... }
}
Run Code Online (Sandbox Code Playgroud)
这样可以像这样调用函数:
implicit val b = 2
val g = Foo(1)
Run Code Online (Sandbox Code Playgroud)
我没有得到哪个类Foo应该扩展的基础声明.如何才能做到这一点?
你不能.Function2 [T1,T2,R]声明抽象方法apply(t1:T1,t2:T2):R,所以如果你想在Function2中混合,你必须实现这个具有不同签名的arity-2 apply方法比你想要使用的咖喱版本.
| 归档时间: |
|
| 查看次数: |
612 次 |
| 最近记录: |