将 JavaScript`s Number 转换为 Scala 的 Double
Convert JavaScript`s Number to Scala's Double
如何将我知道是 JavaScript number
的无类型 js.Dynamic
实例转换为 Scala Double 类型?
背景:我有一个 js 库,它还没有 Scala.js 包装器。它发送某些事件,我想在 Scala 代码中使用这些事件的数据,我需要在其中正确输入。
到目前为止我所做的是:首先 js number
到 Scala 的 String
,然后 String
到 Double
。
map.addListener("click", {(e: js.Dynamic) => {
val c = map.pixelToGeo(e.displayX, e.displayY)
GenerateSampleData.mapClickCoord() =
Coordinate(
String.valueOf(c.latitude).toDouble,
String.valueOf(c.longitude).toDouble)
}})
有效,但我觉得很难看,必须有更好的方法。有什么想法吗?
如果我错了,@sjrd 会纠正我,但我相信 Scala 的 Double 是 引擎盖下的 JS 编号。所以如果你确信 c.latitude
是一个数字,我相信你可以简单地说:
c.latitude.asInstanceOf[Double]
如何将我知道是 JavaScript number
的无类型 js.Dynamic
实例转换为 Scala Double 类型?
背景:我有一个 js 库,它还没有 Scala.js 包装器。它发送某些事件,我想在 Scala 代码中使用这些事件的数据,我需要在其中正确输入。
到目前为止我所做的是:首先 js number
到 Scala 的 String
,然后 String
到 Double
。
map.addListener("click", {(e: js.Dynamic) => {
val c = map.pixelToGeo(e.displayX, e.displayY)
GenerateSampleData.mapClickCoord() =
Coordinate(
String.valueOf(c.latitude).toDouble,
String.valueOf(c.longitude).toDouble)
}})
有效,但我觉得很难看,必须有更好的方法。有什么想法吗?
@sjrd 会纠正我,但我相信 Scala 的 Double 是 引擎盖下的 JS 编号。所以如果你确信 c.latitude
是一个数字,我相信你可以简单地说:
c.latitude.asInstanceOf[Double]