2012-07-31 20 views
0

我试图学习来自Java背景的Scala。下面的程序应该运行吗?当我右键单击文件Functional时,不会显示运行该文件的选项。我需要更改以运行方法Timer.run?我使用Eclipse3.7 & Scala插件2.0.2。如何在对象中运行方法 - 初学者

class Functional { 

    object Timer { 
    def oncePerSecond(callback:() => Unit) { 
     while (true) { callback(); Thread sleep 1000 } 
    } 
    def timeFlies() { 
     println("time flies like an arrow...") 
    } 
    def run() { 
     oncePerSecond(timeFlies) 
    } 
    } 

    def main(args: Array[String]) { 
    Timer.run(); 
    } 
} 
+0

@ om-nom-nom是的,我已经更新了我的问题 – 2012-07-31 22:15:28

回答

5

主要方法应该驻留在object定义,而不是在class。在object中定义的方法与来自Java的static相当。

+4

另外,我不得不说,使用'App'特性(混合到你的对象)而不是写主要方法要容易得多,就像在[Scala for Java难民]的入门部分中(http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-1)。 – 2012-07-31 22:17:22

+0

@ om-nom-nom +1在该教程中有很好的介绍,谢谢 – 2012-07-31 22:27:15