【发布时间】:2013-01-15 05:33:56
【问题描述】:
我正在尝试使用 scala 解释器中的 IMain 方法来运行已转换为字符串的函数。但是我无法将用户创建的类导入解释器。
例如,您可以轻松地从 scala 数据库中导入类,例如:
val m = new IMain()
m.interpret("import scala.math.sin")
m.interpret("sin(10)")
只要解释器正在运行,这个导入就会一直存在。但是我一直无法找到导入我创建的类和对象(或任何私有库)的方法:
m.interpret("import sounder.Sounder.play"
m.interpret("play(t=>50*sin(2*Pi*t*400),0,10")
(play是一种通过电脑声卡播放声音的方法)
我已经尝试使用解释器中的所有方法,但似乎都没有。我想出的唯一解决方案是将类文件转换为一行 with ;将每一行分开并通过解释运行,但即使这样也存在阻止编译的问题。
是否有允许输入到解释器的方法,或者是否有另一个过程允许 scala 解释器处理字符串。
感谢您的帮助,我在 Windows 7 计算机上运行 Scala 2.9.2。
【问题讨论】:
-
最终根本不使用 IMain,因为 0__ 给出的解决方案不起作用。相反,我创建了一个类,该类将使用模式匹配来确定正在使用的函数的类型。没有那么有效,也没有那么高效,但这是我能找到的最佳解决方案。
标签: scala interpreter