我想写一个函数来操作任何泛型类型 T,它已经实现了一组运算符,
例如这个函数应该适用于任何实现的
I
和O
:I.plus(I): I
I.times(Int): I
O.plus(O): O
O.div(Int): O
typealias GeneralFunction<I,O> = (I) -> O
// takes in a function and produce an averaged version of it
fun <I,O> deNoise(func: GeneralFunction<I,O>, h: I): GeneralFunction<I,O> = { i: I ->
(func(i + 2*h) + func(i) + func(i-2*h))/3
}
我不知道如何为我的泛型定义边界来编译这个片段,
我尝试编写一个通用接口
FieldOps<T>
,它声明了一组必需的运算符Double
目标是:
因此欢迎任何尊重这些标准的建议,