====== Hello World! ======
Haxeのインストールが終わり、''haxe''と''haxlib''コマンドが使える状態になったら、さっそくコードを書いて動かしてみます。最初のプログラムは予想される通り、伝統的なHello Worldです。テキストエディタを起動して次のコードを打ち込みます。
class Hello {
static function main() {
trace("Hello, world!");
}
}
任意の作業用ディレクトリに、この内容のテキストファイルを//Hello.hx//という名前で保存します。Haxeのソースコードファイルの拡張子は「**.hx**」です。
このHello Worldプログラムを実行する方法はたくさんあります。Haxeコンパイラは他の言語のソースコードやVMのバイトコードを出力するので、その分だけ実行方法があります。
まずは、もっとも簡単な方法を紹介します。ターミナルアプリケーションを起動して、ファイルを保存したディレクトリに移動します。
$ cd path/to/hello-world
続いて、次のコマンドを打ち込みます。
$ haxe --main Hello --interp
Hello.hx:3: Hello, world!
"Hello, world!"というテキストが出力されました。ファイル名と行番号も出力されるため、シンプルさと美しさが損なわれていると感じるかもしれませんが、大体は期待したとおりでしょう。''--main''は、実行するmain関数(メソッド)を含むクラスの名前を指定するオプションです。このMainとなるクラスの名前は、ファイル名の拡張子を除いた名前と一致させる必要があります。''--interp''は、ターゲットを生成するのではなく、コンパイラに直接その場で実行させることを指示するものです。
次に、別の言語をターゲットターゲットしてコードを生成させてみます。全部やるのは大変なので、JavaScriptとNekoVMだけをやってみます。
先ほどと同じディレクトリで、次のコマンドを打ち込みます。
$ haxe --main Hello --js hello.js
すると、同じディレクトリに''hello.js''というファイルが生成されます。
$ ls
Hello.hx hello.js
この''hello.js''は、HTMLに読み込んでWebブラウザから実行することも出来ますし、Node.jsで実行することも出来ます。試しに、Node.jsで実行してみます。
$ node hello.js
Hello.hx:3: Hello, world!
先ほどの''--interp''を使ったときと同じ出力になりました。
NecoVMの場合は次のようにします。
$ haxe --main Hello --neko hello.n
$ ls
Hello.hx hello.js hello.n
''hello.n''というファイルが生成されました。NecoVMのバイトコードのファイルは、拡張子が「**.n**」となります。
実行してみます。
$ neko hello.n
Hello.hx:3: Hello, world!
同じ結果が得られました。
他の言語をターゲットとする場合も、同じような手順でできます。ただし、いくつかのターゲットは環境を追加でインストールする必要があります。どれも''haxlib''でインストール出来ます。それらについては別のページを用意する予定です。今すぐ知りたい場合は[[https://haxe.org/manual/target-details.html|マニュアル]]を参照してください。