kotlin 通用类型,它实现了一组运算符

问题描述 投票:0回答:0

我想写一个函数来操作任何泛型类型 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

目标是:

  • 不失一般性
  • 避免样板文件
  • 避免任何开销

因此欢迎任何尊重这些标准的建议,

  • 提前致谢
kotlin generics operator-overloading
© www.soinside.com 2019 - 2024. All rights reserved.