2016-08-09 71 views
0

通過隱式引用我有以下代碼:如何從構造

class myClass(someObject:Option[SomeThing]){ 

    def doSomeThing(a:Int,b:Int)(implicit someOtherOption:Option[SomeThing]) = ??? 
} 

我想從構造函數傳遞someObjectdoSomething方法。

我可以做一個類

implicit val someImplictObject = someObject 

implicit參考做,但這樣看起來醜陋。我想,我可以使用implicitly方法,但我找不到正確的語法。

回答

3

您可以someOtherOption這種方式設置默認值:

def doSomeThing(a:Int, b:Int) 
    (implicit someOtherOption:Option[SomeThing] = someObject) = ??? 
1

你想通過它調用方法或定義它的時候是什麼時候?在第一種情況下,您只需要doSomething(a, b)(someObject)。在第二個,你可以寫

def doSomeThing(a:Int,b:Int) = { // no someOtherOption parameter 
    implicit val someImplictObject = someObject 
    ... 
} 

未做someObject avaialable隱含於整個類。