我正在尝试使用Intellij的工作表功能。我有这个简单的代码:
object Timer {
// this function takes another function as an argument.
// that function takes no args, and doesn't return anything.
def oncePerSecond(callback: () => Unit) {
while (true) { callback(); Thread.sleep(1000) }
}
// the function we'll pass in to oncePerSecond.
// this can be any function that takes no args and doesn't
// return anything.
def timeFlies() {
println("time flies like an arrow ...")
}
// the main() method, where we pass timeFlies into oncePerSecond.
def main(args: Array[String]): Unit = {
oncePerSecond(timeFlies)
}
}
为什么不运行?我没有看到时间过得像箭一样#34;当它执行时。
答案 0 :(得分:1)
如果你想在工作表中运行这个方法,你不应该把它放在main方法中,但是:
oncePerSecond(timeFlies)
没有任何东西。在这个Timer对象中。
编辑: 如果要从控制台运行它,可以使用scalac和scala:
scalac Timer.scala
scala Timer
或者您可以创建一个简单的sbt项目或使用其他构建工具。
Edit2:以前我没有看到你还有一个问题。您的代码不起作用,因为在实践中您创建了一个方法main而不使用它。在工作表中,您需要使用方法来查看结果。所以如果你输入对象:
val a = 1
并且您运行此工作表,您可以看到它在右侧(在右侧窗口中)进行了评估。 同样的情况是一种方法。如果您创建了一些方法,则可以看到该方法已创建。要查看结果,您只需使用此方法并运行工作表。