Locked History Actions

scala/langOthers

Scala文法未整理

Scalaには組み込みの構文というものがほとんどなく、Javaのそれにあたるものがほとんど「メソッド呼び出し」で実現されている。 「構文」の見かけをもったものが、実際はメソッド呼び出しに変換されている。

配列へのアクセスが実はメソッド呼び出し

var array = Array(1, 2, 3);
println(array(0));

は、実際には以下のめようなメソッド呼び出し

println(array.apply(0));

配列への代入も実はメソッド呼び出し

array(0) = 1234;
// は以下のメソッド呼び出し
array.update(0, 1234);

演算子も実はメソッド呼び出し

var a = 1 + 3;
// は以下のメソッド呼び出し
var a = (1).+(3)
// ※以下にしてしまうと、「1.」の「+」メソッドを呼び出すことになってしまう。
var a = 1.+(3)

二項タプルの作成もメソッド呼び出し

    var a = 1 -> "abc";
    var b = (1).->("abc");
    var c = (1, "abc");
    println(a == b);
    println(a == c);