intellij工作表中的主要方法不运行?

时间:2018-05-18 15:09:56

标签: scala

我正在尝试使用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;当它执行时。

1 个答案:

答案 0 :(得分:1)

如果你想在工作表中运行这个方法,你不应该把它放在main方法中,但是:

oncePerSecond(timeFlies)
没有任何东西。在这个Timer对象中。

编辑: 如果要从控制台运行它,可以使用scalac和scala:

scalac Timer.scala
scala Timer

或者您可以创建一个简单的sbt项目或使用其他构建工具。

Edit2:以前我没有看到你还有一个问题。您的代码不起作用,因为在实践中您创建了一个方法main而不使用它。在工作表中,您需要使用方法来查看结果。所以如果你输入对象:

val a = 1

并且您运行此工作表,您可以看到它在右侧(在右侧窗口中)进行了评估。 同样的情况是一种方法。如果您创建了一些方法,则可以看到该方法已创建。要查看结果,您只需使用此方法并运行工作表。