2012-09-29

Java1.7のRhinoスクリプトエンジンはRhino1.7相当の機能を使用できる

jrunscriptに-qオプションを付けてRhinoのバージョンを確認したところ、 Java1.6の時点ではRhino1.6だったが、Java1.7からRhino1.7と表示されるようになった。
これはJava1.7付属のRhinoでようやくletを使えるということなので、 varで宣言した変数のスコープに悩まされてきた身としては大変ありがたい。
特にfor文でループ変数のスコープを最小限にするために、 いちいち (function(){})() で囲ってやるのは手間だった。 Rhino1.7相当なら、最初から for (let i = 0; i < count; i++) と書くことができる。

1. 実行するスクリプト(let.js):
var stdout = java.lang.System.out;

{
    let n = 2;
    for (let i = 0; i < n; i++) {
        stdout.print(" " + i);
    }
    stdout.println();
    stdout.println("i is " + typeof i);
}
stdout.println("n is " + typeof n);

2. 実行する:
>jrunscript let.js
 0 1
i is undefined
n is undefined

0 件のコメント:

コメントを投稿