私はロックダウンされたPCで仕事に閉じ込められています。しかし、私は自分の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は行の終わりをステートメントの終わりと見なさないのですか?
このブログの2番目のポスターに答えがあるようです。スカラの人々はこれに乗るべきです。そのような迷惑....これは私がこの他の点では美しい言語で遭遇した最初の迷惑についてですが。 http://www.scala-lang.org/node/4143
ドキュメントから直接の別の説明:http: //docs.scala-lang.org/style/method-invocation.html