5
假設我們有對象認爲需要的功能apply
方法的參數:如何做兩個函數的參數爲隱式
object Wrapper {
def apply(block: TypeA => String) = {
TypeA a = ...
block(a)
}
}
TypeA
是應用程序域類型。
現在,當我定義內嵌塊我可以定義TypeA
參數隱式:
Wrapper { implicit a => functionThatUseImplicitA() }
但如果block
參數不是Function1
,但Function2
?我如何將兩個參數定義爲隱式?
object Wrapper2 {
def apply(block: (TypeA, TypeB) => String) = {
TypeA a = ...
TypeB b = ...
block(a, b)
}
}
這一個不工作:
Wrapper { implicit (a, b) => functionThatUseImplicitAB() }
唯一的解決方法是將它們定義爲丘壑:
Wrapper { (a, b) =>
implicit val ia = a
implicit val ib = b
functionThatUseImplicitAB()
}
謝謝!
你能告訴我怎麼解決咖喱功能這個問題? functionThatUseImplicit *來自外部API – 1esha
@AlexeyRomantchouk:我已經更新了我的答案。當你可以改變'Wrapper'的定義時,它解決了你的問題。 – senia
謝謝!這正是我所尋找的 – 1esha