【发布时间】:2012-05-18 16:59:54
【问题描述】:
我被困在工作中,电脑被锁定。但我正在尝试练习我的 Scala。我正在使用 Ideone.com,因为我什至无法安装 scalac...
无论如何这不是编译:
class DPt(var name: String, var x: Double, var y: Double){
def print = println("DPt; name: " + name + " x: " + x + " y: " + y)
}
object Main {
def main(args: Array[String]) {
val pt0 = new DPt("Joe", 1.0, 1.0)
println("checking generated accessor: " + pt0.x)
pt0 print
pt0.x_=(3.0)
pt0 print
}
}
我从 Ideone.com scala 编译器收到这条消息:
Main.scala:12: error: Unit does not take parameters
pt0 print
^
one error found
spoj: The program compiled successfully, but Main.class was not found.
Class Main should contain method: def main(args: Array[String]).
但是,当我在语句的末尾添加分号时,如下所示:
class DPt(var name: String, var x: Double, var y: Double){
def print = println("DPt; name: " + name + " x: " + x + " y: " + y)
}
object Main {
def main(args: Array[String]) {
val pt0 = new DPt("Joe", 1.0, 1.0);
println("checking generated accessor: " + pt0.x);
pt0 print;
pt0.x_=(3.0);
pt0 print;
}
}
我发现 Scala 中的中缀和后缀表示法是 AWESOME,但我一定遗漏了一些东西。为什么 Scala 不将行尾视为语句的结尾?
这个博客的第二张海报似乎有答案。 Scala 的人应该继续这样做。这样的烦恼....尽管这是我在这种原本美丽的语言中遇到的第一个令人讨厌的问题。 http://www.scala-lang.org/node/4143
直接来自文档的另一个解释: http://docs.scala-lang.org/style/method-invocation.html
【问题讨论】:
-
使用 Simply Scala 而不是 IDE One。
标签: scala jvm postfix-notation