2013-01-19 83 views
0

在Scala中,你可以做一些事情,比如傳入一個函數變量作爲參數等,但我想知道是否可以有更多的模板類功能?在這個簡單的例子(不編譯,只是我想要的骨架),包裝函數包含一些幾乎完全相同的代碼,但只有一行是不同的。假設包裝是一個長的骨架,我不想寫兩次,我可以通過sub1sub2?注意這兩個函數具有不同的簽名,這使得它不適合咖喱解決方案:正常源代碼中的模板方法?

object MyTemplate{ 

    def sub1(a: Int): String={ 
    a.toString 
    } 

    def sub2(b: String, c: String): Int={ 
    return b.toInt*x 
    } 

    def wrapper(i: Int)(f: ???): Double ={ 
    if (xxxx) 
     do something 
    else 
     do something else 
     [this line needs to call either sub1() or sub2() ] 

    common code continues 
    } 
} 
+0

獲得「動態方法」調用所需參數的假設條件是什麼?你會接受將它們作爲'wrapper'的進一步參數嗎? –

回答

1

是的。我有信心,與類型參數,功能組成,咖喱等,你可以找到一種方法來做你想做的。如果沒有更具體的問題,很難提供更具體的答案。

相關問題