scala类中的println不会在STDOUT上显示输出

时间:2016-02-26 18:28:40

标签: java scala class object println

我在tutorialspoint上找到了这段代码。代码看起来很直接。它从类点调用move方法。该方法在STDOUT上打印新的x / y坐标。但是,它没有,我无法弄清楚为什么。我在cygwin上的scala和cloudera VM上的spark-shell上都运行了代码。同样的结果: - )

如果有人能指出(没有双关语意)我做错了什么,感激不尽。

class_plus.scala

import java.io._

class Point(val xc: Int, val yc: Int) {
   var x: Int = xc
   var y: Int = yc
     def move(dx: Int, dy: Int) {
     x = x + dx
     y = y + dy
     println ("Point x location : " + x);
     println ("Point y location : " + y);
  }
 }

  object Test {
   def main(args: Array[String]) {
      val pt = new Point(10, 20);

     // Move to a new location
     pt.move(10, 10);
   }
  }

然后我跑:

  u0124587@U0124587-TPL-B ~
  $ scala class_plus.scala

  u0124587@U0124587-TPL-B ~
  $

1 个答案:

答案 0 :(得分:2)

这是因为您的主要方法没有被执行。如果将此行添加到文件的底部以显式调用main方法,它应该可以工作:

Test.main(args)

要使Test中的main方法以您期望的方式作为入口点而不添加额外的行,您需要首先将该文件编译为类:

scalac class_plus.scala  

这将在同一目录中创建几个类文件,然后您可以运行

scala Test     

它应该为您提供您期望的输出