私はcalculation
がB
のコンストラクター、のようなものに提供されるように、クラスB
(例えば)でA
を実装したいインターフェースパラメータ化機能とインターフェイスを実装
interface A {
fun calculate(n: Int): Int
}
があるとします。
class B (f : (Int) -> Int) : A {
override fun calculate(n: Int): Int //...somehow assign f to calculate
}
が、これはf
B
のプロパティをすることなく行うことができますか?
うーん...この作品:
interface A {
val calculate: (n: Int) -> Int
}
class B(f: (Int) -> Int) : A {
override val calculate = f
}
を誰かがfun
とここval
との意図構文上の違いを説明することはできますか?私はFunction definition: fun vs valを知っていますが、「言語レベル」の理解を得たいと考えています。
なぜそれがBの性質fを作るために問題ありますか?それがあなたの心配なら、それを非公開にすることができます。 –
はい、私は '(プライベートval f:(Int) - > Int)'を実行し、 'calculate(n:Int):Int = f(n)'を持つことができます。 –
さて、関数の参照をどこかに格納する必要があります。 –