4
比方說,我有:爲科特林函數類型簽名使用默認參數
fun addInvoker(adder:() -> Int = ::add): Int{
return adder()
}
fun add(num1:Int = 1, num2:Int = 1): Int{
return num1 + num2
}
我得到一個錯誤,因爲::增加有兩個參數,但addInvoker的簽名要求它具有零個參數。但是,如果我將其更改爲:
fun addInvoker(adder: (Int, Int) -> Int = ::add): Int{
return adder()
}
fun add(num1:Int = 1, num2:Int = 1): Int{
return num1 + num2
}
然後我無法調用adder(),即使用其默認參數調用add。
那麼,有什麼辦法可以使::添加默認參數給invokeAdder,但仍然調用add與adder()
,從而調用它與默認參數?
試圖在加法器上創建零參數函數包裝器,我不知道是否在kotlin中有一些語法糖在另一個函數聲明中創建臨時匿名函數。就像'.... = ::(() - >(add()))):Int {.....' –
對語言不瞭解,但通常情況下使包裝似乎解決您的問題。 – HuStmpHrrr
是的,創建一個包裝的作品,但我想知道是否有一種方法,我可以用類型簽名做到這一點。我希望這是不可能的。 – pondermatic