【发布时间】:2015-01-08 00:02:37
【问题描述】:
我正在尝试导出用于 JavaScript 的算法的 Scala 实现。我正在使用@JSExport。该算法适用于 Scala Char 和 Long 值,这些值在 interoperability guide 中标记为 不透明。
我想知道 (a) 这意味着什么; (b) 处理此问题的建议是什么。
我认为这意味着我应该避免使用 Char 和 Long 并使用 String 加上运行时长度检查(或者可能使用无形的 Sized 集合)和 Int 代替。
但欢迎其他想法。
更多细节...
我正在查看的代码类型是:
@JSExport("Foo")
class Foo(val x: Int) {
@JSExport("add")
def add(n: Int): Int = x+n
}
...按预期工作:new Foo(1).add(2) 产生 3。
将类型替换为Long 相同的调用报告:
java.lang.ClassCastException: 1 is not an instance of scala.scalajs.runtime.RuntimeLong(以及与接受和返回 Char 的方法类似的东西)。
【问题讨论】:
标签: scala.js