Scala无法将Double的表达式转换为Int

时间:2016-01-11 22:24:36

标签: scala casting type-conversion

我有以下方法,它将两点之间的距离的绝对值作为Int返回。

  def absDist(a: Tuple2[Int, Int], b: Tuple2[Int, Int]): Int = {
    ((scala.math.pow(a._1 - b._1, 2) + scala.math.pow(a._2 - b._2, 2)): Int)
  }

但是,无法转换类型:

Expression of type Double doesn't conform to expected type Int

为什么会这样?我的转换对我来说很好。

1 个答案:

答案 0 :(得分:5)

使用toInt进行类型转换:

def absDist(a: Tuple2[Int, Int], b: Tuple2[Int, Int]): Int = {
    (scala.math.pow(a._1 - b._1, 2) + scala.math.pow(a._2 - b._2, 2)).toInt
}