js.Function2,如何?
js.Function2, how to?
我正在尝试将一些 d3.js 应用程序移植到 Scala.js,只是为了学习。但目前我有点卡住了。
JS:
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.y, d.x]; });
如何将其转换为 scala.js?我知道我需要一个 js.Function2[Node, Double, js.Tuple2[Double,Double]
但我不知道如何制作它。
对于js.Function1
来说很简单,就像这样:
private def test: (Event) => Unit = (e: dom.Event) => {
()
}
使用"org.singlespaced" %%% "scalajs-d3" % "0.3.3"
基本上是一样的东西,只是需要两个参数。你的例子的同源词是:
private val test2: (Node, Double) => js.Tuple2[Double, Double] = (n:Node, d:Double) => {
(1.2, 3.5)
}
虽然更典型的说法是:
private def test2(n:Node, d:Double):js.Tuple2[Double, Double] = {
(1.2, 3.5)
}
内联,它会是某事,例如:
val diagonal = d3.svg.diagonal()
.projection((n:Node, d:Double) => js.Tuple2(something.y, something.x));
"something" 是因为我不明白你的 JS 示例是如何作为 js.Function2
出现的 - Function2
需要 2 个参数,而你的示例只显示 1 个。 x
和 y
字段是 Node
吗?
我正在尝试将一些 d3.js 应用程序移植到 Scala.js,只是为了学习。但目前我有点卡住了。
JS:
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.y, d.x]; });
如何将其转换为 scala.js?我知道我需要一个 js.Function2[Node, Double, js.Tuple2[Double,Double]
但我不知道如何制作它。
对于js.Function1
来说很简单,就像这样:
private def test: (Event) => Unit = (e: dom.Event) => {
()
}
使用"org.singlespaced" %%% "scalajs-d3" % "0.3.3"
基本上是一样的东西,只是需要两个参数。你的例子的同源词是:
private val test2: (Node, Double) => js.Tuple2[Double, Double] = (n:Node, d:Double) => {
(1.2, 3.5)
}
虽然更典型的说法是:
private def test2(n:Node, d:Double):js.Tuple2[Double, Double] = {
(1.2, 3.5)
}
内联,它会是某事,例如:
val diagonal = d3.svg.diagonal()
.projection((n:Node, d:Double) => js.Tuple2(something.y, something.x));
"something" 是因为我不明白你的 JS 示例是如何作为 js.Function2
出现的 - Function2
需要 2 个参数,而你的示例只显示 1 个。 x
和 y
字段是 Node
吗?