我被困在工作中,电脑被锁定。但我正在尝试练习我的 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 中的中缀和后缀表示法很棒,但我一定遗漏了一些东西。为什么 Scala 不将行尾视为语句的结尾?
这个博客上的第二张海报似乎有答案。Scala 的人应该继续这样做。这样的烦恼....虽然这是我在这种原本美丽的语言中遇到的第一个令人讨厌的问题。 http://www.scala-lang.org/node/4143
文档中的另一个解释:http: //docs.scala-lang.org/style/method-invocation.html