如何从构造函数传递隐式引用
How to pass implicit reference from constructor
我有以下代码:
class myClass(someObject:Option[SomeThing]){
def doSomeThing(a:Int,b:Int)(implicit someOtherOption:Option[SomeThing]) = ???
}
我想将 someObject
从构造函数传递给 doSomething
方法。
我可以通过在 class
中创建 implicit
引用来做到这一点
implicit val someImplictObject = someObject
但是这样看起来很难看。我想,我可以使用 implicitly
方法,但找不到正确的语法。
您可以通过这种方式为 someOtherOption 设置默认值:
def doSomeThing(a:Int, b:Int)
(implicit someOtherOption:Option[SomeThing] = someObject) = ???
是调用方法的时候传还是定义的时候传?在第一种情况下,您只需要 doSomething(a, b)(someObject)
。第二,你可以写
def doSomeThing(a:Int,b:Int) = { // no someOtherOption parameter
implicit val someImplictObject = someObject
...
}
没有使 someObject
对整个 class.
隐式可用
我有以下代码:
class myClass(someObject:Option[SomeThing]){
def doSomeThing(a:Int,b:Int)(implicit someOtherOption:Option[SomeThing]) = ???
}
我想将 someObject
从构造函数传递给 doSomething
方法。
我可以通过在 class
中创建implicit
引用来做到这一点
implicit val someImplictObject = someObject
但是这样看起来很难看。我想,我可以使用 implicitly
方法,但找不到正确的语法。
您可以通过这种方式为 someOtherOption 设置默认值:
def doSomeThing(a:Int, b:Int)
(implicit someOtherOption:Option[SomeThing] = someObject) = ???
是调用方法的时候传还是定义的时候传?在第一种情况下,您只需要 doSomething(a, b)(someObject)
。第二,你可以写
def doSomeThing(a:Int,b:Int) = { // no someOtherOption parameter
implicit val someImplictObject = someObject
...
}
没有使 someObject
对整个 class.