我有以下代码:
class myClass(someObject:Option[SomeThing]){
def doSomeThing(a:Int,b:Int)(implicit someOtherOption:Option[SomeThing]) = ???
}
我想将someObject
从构造函数传递给doSomething
方法。
我可以通过在类
中进行implicit
引用来实现
implicit val someImplictObject = someObject
但这种方式看起来很难看。我想,我可以使用implicitly
方法,但我找不到正确的语法。
答案 0 :(得分:3)
您可以通过以下方式设置someOtherOption的默认值:
def doSomeThing(a:Int, b:Int)
(implicit someOtherOption:Option[SomeThing] = someObject) = ???
答案 1 :(得分:1)
您想在调用方法或定义方法时传递它吗?在第一种情况下,您只需要doSomething(a, b)(someObject)
。在第二个,你可以写
def doSomeThing(a:Int,b:Int) = { // no someOtherOption parameter
implicit val someImplictObject = someObject
...
}
没有隐含地赋予整个班级someObject
avaialable。