【发布时间】:2015-05-12 14:50:13
【问题描述】:
我正在尝试获取有序数字列表中的最小值和最大值。 使用特定类型时没有问题:
private def minMaxValue (valuesList: List[Option[Int]], min: Boolean): Option[Int] =
valuesList.flatten match {
case Nil => None
case xs => Some(if (min) xs.min else xs.max)
}
但是当我找不到将其更改为也接受 Long 和 Float 的方法时,我尝试了:
private def minMaxValue (valuesList: List[Option[Any]], min: Boolean): Option[Int] =
valuesList.flatten match {
case Nil => None
case xs: List[Int] => Some(if (min) xs.min else xs.max)
case xs: List[Long] => Some(if (min) xs.min else xs.max)
}
但它不起作用,我收到此警告
- 类型模式 List[Int](List[Int] 的基础)中的非变量类型参数 Int 未选中,因为它被 擦除
在 scala 中解决此问题的最佳方法是什么?
【问题讨论】:
标签: scala