如何在运行时知道类型是否为“数字”(没有类型类)

时间:2015-03-12 21:34:43

标签: scala

我们说我不能出于某种原因选择使用[T: Numeric]类型。

有没有给出" Any"测试它是否是"数字"没有使用上述?

编辑:感谢Lee的评论,它显然和Java一样简单:x.isInstanceOf[Number]

我对其工作原理的理解是:x:Any = 1基本上在运行时java.lang.Integer,后者又实现了java.lang.Number

1 个答案:

答案 0 :(得分:5)

val a = "hello"
val b = 1.34
toNumericOption(a) // None
toNumericOption(b) //Some(1.34)

def toNumericOption(x: Any) = x match {
  case n: java.lang.Number => Some(n)
  case _ => None
}

您可以使用它转换为选项