私は、Scala が常に何に対しても「自然な説明」を持っていることを発見しました。常に「ああ、でもそれは、これとそのパラメーターを使用して、このオブジェクトとそのオブジェクトで呼び出されている関数にすぎません」のようなものです。ある意味で、他の言語からわかるように、実際にコンパイラー・マジックと呼ばれるものはありません。
私の質問は、次のコードで使用されている<-演算子です。
for(i <- 0 to 10) println(i)
この例では、次のように書き換えられていることがわかります。
0.to(10).foreach((i:Int)=>println(i))
しかし、これはiが foreach 関数内の匿名関数にどのように運ばれたかを説明していません。iを書いた時点では、それはオブジェクトではなく、宣言された変数でもありません。では、それは何であり、どのように foreach の内部に引き継がれているのでしょうか?
私の推測では、実際にはコンパイラの魔法である何かをついに発見したということです
御時間ありがとうございます。
明確にするために、私の質問は次のとおりです。 <- 演算子は、コードの1行目でどのように機能しますか? i は、関数として呼び出すことができるオブジェクトではないためです。