scala - 如何在 Scala 中编写通用数值函数?
问题描述
我知道这个问题可能会被回答很多次,但是我找不到可以解决我问题的帖子。我的问题是我想写一个通用函数,可以接受Int
,Double
或者BigDecimal
进行计算。
def foo[T: Numeric](returns: Seq[T])(implicit ev: T => Ordered[T]): Seq[T]= {
returns.filter(_ >= 0)
}
但是我收到了类型匹配错误,因为0
是Int
. 如果有任何方法可以使它适用于任何Numeric
类型。
解决方案
尝试这个。
def foo[T](returns: Seq[T])(implicit N: Numeric[T]): Seq[T] = {
import N._
returns.filter(_ >= N.zero)
}
scaladoc是你的朋友。
推荐阅读
- angular - Angular 7 中的 Charts.js - 使用时间序列的导入时间
- c++ - 如何使用 sprintf 将 uint_64 类型的数组附加到 char 数组?
- docusignapi - 如何通过 Docusign REST API 提取所有用户发送/接收的所有信封的列表(例如在报告选项卡中)?
- intellij-idea - INTELLIJ IDEA 如何在目标下设置与战争相同的工件
- maven - Apache NIFI - 1.7.1 从源代码构建
- react-native - 无法从“世博”导入世博。在本机反应
- ios - 快速过滤json数组
- python - Python导入在中断后不起作用
- arrays - 如何在矩阵乘法中需要乘以一组元素而不是一个元素
- javascript - Javascript画布路径未呈现