Haxe
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/09 15:45 UTC 版)
![]() Haxeのロゴ | |
パラダイム | マルチパラダイム |
---|---|
登場時期 | 2005 |
開発者 | Haxe Foundation, Nicolas Cannasse |
最新リリース | 4.3.6/ 2024年8月7日[1] |
評価版リリース | haxe 2024-08-14 development / 2024年8月14日[2] |
型付け | 静的型付け |
影響を受けた言語 | ActionScript, OCaml |
プラットフォーム | クロスプラットフォーム |
ライセンス |
コンパイラ:GPL v2以降 標準ライブラリ:MIT |
ウェブサイト | haxe.org |
Haxe(ヘックス、発音記号は /heks/[3][4])はオープンソースの高級プログラミング言語、もしくはそのコンパイラである。
言語としてのHaxeは静的型付きのオブジェクト指向言語であり、構文はActionScript 3および標準化が中止されたECMAScript 4に似ている。Adobe FlashやJava仮想マシンおよび独自のNekoやHashLinkで実行可能なバイトコードにコンパイルされるほか、JavaScript、ActionScript 3、C++、Cppia、C#、Java、PHP 7、Python 3、Luaへのソースコードの変換が可能であるため、主にマルチプラットフォーム開発を目的として使用される。また、FlashからHTML5への移行にも適する。
2012年4月に表記がhaXeからHaxeに変更された[5]。
対応プラットフォーム
Haxeのコンパイラは、AVMやJava VM、そして独自の仮想マシンであるNeko及びHashLinkのバイトコードや、JavaScript、ActionScript 3、C++、Cppia、C#、Java、PHP、Python 3、Luaのソースコードを生成する。複数のプラットフォームに「コンパイルする」この戦略は、"Write once, run anywhere" の思想に基づいている。これにより、プログラマが目的のために最良のプラットフォームを選択できる。
Haxeでは、これらプラットフォームは「ターゲット」と呼ばれる。
AVM
haXe Betaより対応(2006年2月)[6]。バイトコードへコンパイルされる。主な想定プラットフォームは、Adobe Flash、Adobe AIR。
2007年3月、AVM2へ対応した[6]。
Neko
haXe Betaより対応(2006年2月)[6]。バイトコードへコンパイルされる。
JavaScript
1.0より対応(2006年5月)[6]。単一のソースファイルを出力する。主な想定プラットフォームは、ブラウザやNode.js、Electron。
Dynamic型によってJavaScriptのライブラリをそのまま利用できるほか、著名なライブラリであれば、Haxelibに公開されている(あるいは自分で定義した)externライブラリを使用することで、型安全性を保ったまま利用することができる[7]。
Haxe 4.0現在、ECMAScript 5に準拠したコードへコンパイルされる[8]。加えて、4.0以降ではECMA Script 6から追加されたクラス定義に対応した[9]。
ActionScript 3
1.xより対応(2007年3月)[6]。複数のソースファイルを出力する。主な想定プラットフォームは、Adobe FlashやAdobe AIR。
PHP
2.0.0より対応(2008年7月)[10]。複数のソースファイルを出力する。
Haxe 3まではPHP 5.1.0に準拠したコードへコンパイルされていたが、Haxe 4以降ではPHP 7.0.0へ変更された[11]。
C++
2.4.0より対応(2009年7月)[12]。複数のソースファイルを出力する。主な想定プラットフォームは、WindowsやmacOS、Linux、iOS、Android、Tizen、BlackBerry。
C++ターゲットを利用するには、Haxelibに公開されているhxcppライブラリのインストールが必要となる[13]。また、独自のガベージコレクション機能を実装している。
C#
2.10.0より対応(2012年4月)[14]。複数のソースファイルを出力する。主な想定プラットフォームは、.NET FrameworkやMono、ASP.NET、Unity。
Haxelibに公開されているhxcsライブラリによって、.NET Framework 2.0及び4.0の標準ライブラリを利用できるようになる[15]。.NET Frameworkのパスを指定すれば、任意のバージョンを利用することも可能。
Java
2.10.0より対応(2012年4月)[14]。複数のソースファイルを出力する。
Haxelibに公開されているhxjavaライブラリによって、Java 8の標準ライブラリを利用できるようになる[16][17]。
Python
3.2.0-rc.2より対応(2015年5月)[18]。単一のソースファイルを出力する。
Cppia
3.2.0-rc.2より対応(2015年5月)[18]。単一のスクリプトファイルを出力する。
Cppiaは、外部のコンパイラを必要としない、Haxe上で完結するC++のスクリプト実行機能を提供する[19]。Haxelibで公開されているhxcppライブラリを必要とする。
Lua
3.3.0-rc.1より対応[20]。単一のソースファイルを出力する。
HashLink
3.3.0-rc.1より対応[21]。バイトコードへコンパイルされる。主な想定プラットフォームは、WindowsやmacOS、Linux、iOS、Android、Nintendo Switch、PlayStation 4。
Java VM
4.0.0-rc.3より対応[22]。バイトコードへコンパイルされる。
言語
静的型付きのオブジェクト指向言語である。HaxeはActionScriptから派生した言語であるため、基本構文はActionScript3と共通する部分が多い。
機能
ActionScript3と共通する機能
HaxeはActionScript3が持つような以下の機能を持つ。
- クラス、インタフェース
- プロパティ
- パッケージ、モジュール機構
- アクセス修飾子(ただし、publicとprivateの2段階のみ)
- ローカル関数、第一級関数オブジェクト、クロージャ
- 各種演算子(算術、代入、論理、文字列、条件、ビット)
- リフレクション
これらの機能は、クラスのようにActionScript3とよく似た構文で提供されるものもあるが、プロパティのようにActionScript3とは異なる文法で提供されるものもある。
ActionScript3との相違点
構文が似ていても細かい挙動がActionScript3と異なるものも多い。以下にそのようなHaxeの挙動をいくつか挙げる。
- if文、switch文、ブロックが式であり、値を返す。
- ローカル変数、関数のスコープが異なる。
- privateのアクセス修飾子の意味合いが、ActionScript3のprotectedに相当する。
- 演算子の優先順位が異なる。
- % が * と / より優先度が高い。
- |、&、^の優先度が同じ。
- |、&、^が、==、!=より優先度が高い。
また、ActionScript3にはあるがHaxeには存在しない機能もある。以下にその例を挙げる。
- for(初期化式; 継続条件式; 再初期化式){} のC言語形式のfor文
独自の機能
その他、以下のような独自の機能を持つ[23]
- 型推論
- 型パラメータ(ジェネリクス)
- インライン関数
- 列挙型(一般化代数的データ型)
- 型エイリアス (typedef)
- パターンマッチング
- 構造的部分型付け
- 関数の部分適用
- 条件付きコンパイル
- 配列内包表記、辞書内包表記
- 文字列リテラル内での改行、文字列内の変数展開(ヒアドキュメント)
- 静的拡張 (Mixin)
- マクロ
型システム
Haxeでは細かい型宣言が可能である。
function func1(threeDimensionalArray:Array<Array<Array<Int>>>, string:String, bool:Bool) { ... }
// オプションのInt整数値を渡し、Intを返す
function func2(?i:Int):Int {
return 0;
}
// 引数のない関数をパラメータとして渡す
function func3(f:Void -> Void) {
f();
}
// Intを渡しIntを返す関数をパラメータとして渡す
function func4(f:Int -> Int) {
var result = f(1);
}
// 任意型を取り、任意型を返す
function func5(d:Dynamic):Dynamic {
return d;
}
Haxeは静的型付き言語であるが、Dynamic型やuntypedを用いることで部分的に型チェックを無効化できる。逆にexternクラスによる型定義を行うことで、動的型のターゲットのライブラリに対して型チェックを有効にして連携できる。
列挙型
列挙型 (enum) はHaxeの重要な特徴である。
Haxeの列挙型は他の多くの言語のように単に値を列挙して識別子をつけるものよりも抽象的で、列挙子(Haxeではenumコンストラクタと呼ぶ)ごとに異なるパラメータつことが可能である。このような列挙型はMLやHaskellのような言語の代数的データ型に相当する[24]。
これにより、自身をパラメータにもって再帰構造をつくったり、木構造を作ったりできる。
以下の例のようにインスタンス化して使う。
enum Color {
red;
green;
blue;
rgb: (r:Int, g:Int, b:Int);
}
class Colors {
static function toInt(c:Color):Int {
return switch (c) {
case red: 0xFF0000;
case green: 0x00FF00;
case blue: 0x0000FF;
case rgb(r, g, b): (r << 16) | (g << 8) | b;
}
}
static function validCalls() {
var redint = toInt(Color.red);
var rgbint = toInt(Color.rgb(100,100,100));
}
}
標準ライブラリ
Haxeの標準ライブラリはすべてのターゲットで動作するもの、すべてでは無いが複数のターゲットで動作するもの、個別のターゲットのみで動作するものがある。以下にそれぞれの例をあげる。
- すべてのターゲットで動作するもの
- すべてではないが複数のターゲットで動作するもの
- 個別のターゲットで動作するもの
このように機能それぞれに合わせた抽象化が行われているため、複数のターゲットで動作するような書き方と、個別のターゲットに依存してそのターゲットの利点を生かすような書き方の両方ができる。
JavaScript
個別のターゲットのに依存する場合の例として、JavaScript出力におけるHTML5 Canvasの使用例を示す。
import js.Browser;
import js.html.CanvasElement;
class Main
{
static public function main()
{
var canvas:CanvasElement = cast Browser.document.getElementById("canvas");
var ctx = canvas.getContext2d();
ctx.fillStyle = "#F00";
ctx.fillRect(50, 50, 100, 100);
}
}
サードパーティーのライブラリ
OpenFL
HaxeではFlashターゲットの場合はFlashのAPIをそのまま使用できるが、他のターゲットについてもFlashに類似したオープンソースのAPI (OpenFL) が開発されている。
クロスプラットフォームのライブラリであるOpenFLを用いて画像を表示するプログラムを示す。同一コードがFlash、HTML5、Windows/Mac/Linux/iOS/Androidネイティブで実行可能である。描画には、FlashではDisplayObject、HTML5ではWebGLまたはCanvas、ネイティブ環境ではOpenGLが使用される。
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.Lib;
class Main extends Sprite
{
public function new()
{
super();
var image = new Bitmap(openfl.Assets.getBitmapData("img/sample.png"));
addChild(image);
}
static public function main()
{
Lib.current.addChild(new Main());
}
}
コンパイラ
実装
HaxeのコンパイラはOCamlで実装されている。Haxeの利用者にはOCamlの知識は必要ない。
機能
Haxeのコンパイラは複数のプラットフォームへのコンパイルの他に以下のような機能を持つ。
ターゲット共通
各ターゲット個別
- SWC、SWFのライブラリの利用(Flash)
- 静的リンク・動的リンク
- SWC、SWFのライブラリからのexternの生成
- SWCファイルの生成
- ソースマップの生成(JavaScript)
- jarライブラリの利用(Java)
- dllライブラリの利用(C#)
統合開発環境
Haxeでのプログラミングには各種の統合開発環境 (IDE) およびエディタが利用できる。Haxeのコンパイラには、IDEに対してコンパイル・補完機能を提供するサーバ機能が備わっている。
- FlashDevelop
- Visual Studio Code - プラグイン
- Sublime Text - Haxeバンドル
- Atom - atom-haxe
- Vim - Vaxe
- IntelliJ IDEA - 公式プラグイン
- FDT
Haxeで書かれたソフトウェア
Flashコミュニティを出自とする言語のため、ゲームの用例が多い(言語上はそれに限定されない)。以下に代表的なものを挙げる。
- Evoland - Haxe創始者(Nicolas Cannasse)ほかによるインディーRPG
- Papers, Please - 架空の共産国の入国審査官を疑似体験するゲーム。OpenFLを使用。Metacriticのメタスコア85を獲得。GDC 2014のIndependent Games Festivalにおいて最優秀賞を受賞。
- OpenFL - Showcase - OpenFLを使用したゲームのショーケース
- Stencyl - 2Dゲームエディタ。OpenFLを使用。
- TiVo - Android、iOS、デジタルビデオレコーダのアプリケーションに使用している。[25]
歴史
開発当初から現在まで、Nicolas Cannasseがプロジェクトのリーダーを務める。ActionScriptの代替コンパイラとして開発されたため、Flashターゲットの用途が多かったものの、現在はプラットフォーム中立な言語環境となることを目指している[26]。
- 2005年 10月 フランスのブラウザゲーム開発会社Motion Twinの独自ActionScriptコンパイラMTASCの後継プロジェクトとしてHaxeが誕生(当初の綴りはhaXe)
- 2006年 5月 Haxe 1.0がリリース、JavaScriptターゲットに対応
- 2008年 7月 Haxe 2.0がリリース、Franco PonticelliによりPHPターゲットが追加
- 2009年 7月 Haxe 2.04がリリース、Hugh SandersonによりC++ターゲットが追加
- 2011年
- JavaScriptターゲットのメンテナとして参加したBruno Garciaにより、2.08と2.09のリリースにおいてJavaScriptターゲットの最適化が行われた
- Simon Krajewskiがチームに参加
- Cauê WaneckによりJavaおよびC#ターゲットが追加
- 2012年
- 4月 パリ開催のWorld Wide Haxeカンファレンスにおいて、表記をHaxeに変更すること、次のメジャーバージョンとなるHaxe 3に向けて破壊的変更を行うことがアナウンスされる
- Nicolas CannasseがMotion Twinより独立、インディーゲーム開発会社Shiro GamesおよびHaxe Foundationを設立
- 2013年 5月 Haxe 3.0がリリース
言語名の由来
Haxeの名前は、短くシンプルで使われていないこと、また新しい技術を成功に導くために必要な X を中に持っていること(has a X inside)[27]から命名された。
当初の綴りはhaXeであったが、2012年4月のWorld Wide Haxeカンファレンスにおいて、表記を固有名詞として馴染みやすいHaxeに変更することがアナウンスされた[5]。
よく比較される言語
HaxeはJavaScript生成言語(いわゆる「altJS」)のひとつとしてしばしば言及される。比較対象となる主な言語として、以下が挙げられる。
HashLink
HashLinkは、Nekoの後継とされる新しい仮想マシンで、2016年10月20日に開催された"London Haxe Meetup 20th October 2016"にて発表された[28]。x86及びx86-64のWindows、macOS、Linux上で動作する。DirectXやSDL、OpenALをベースとしたマルチメディア機能のほか、zlibなどの著名なライブラリを内包する。またWindows限定ではあるが、一部のネイティブGUIコンポーネントも利用できる。なお、Neko VMとは異なり静的型付けである。実行にはHashLinkバイトコードファイル(拡張子は.hl
)を用いる。
HashLinkの動作形態として、HL/JIT方式とHL/C方式の2種類がある。HL/JIT方式では、実行時コンパイラを通して仮想マシン上で動作させる為、コンパイル速度が高速でデバッグに向いている。一方、HL/C方式では仮想マシンは使用されず、代わりにC言語ソースコードを出力する。出力されたCソースコードは、任意のCコンパイラでビルドでき、より高いパフォーマンスと移植性が期待できる[29]。例えば、iOSやAndroidなどのモバイルOS、PlayStation 4やNintendo Switchなどの家庭用ゲーム機といった、デスクトップ環境に限定されない様々なプラットフォームへの移植が比較的容易となる。実例として、このHashLinkとゲームエンジンであるHeapsで開発されているMotion Twin社のDead Cellsは[30][31]、PlayStation 4、Nintendo Switch、Xbox One向けに移植されている。
参照
- ^ “Haxe 4.3.6”. 2024年8月20日閲覧。
- ^ “Haxe git builds”. 2024年8月20日閲覧。
- ^ Haxeの発音について言語開発者による回答
- ^ 公式メーリングリストにおけるHaxeの読み方についての会話
- ^ a b haXe is now Haxe
- ^ a b c d e “History”. 2019年11月3日閲覧。
- ^ “Using external JavaScript libraries”. 2019年11月3日閲覧。
- ^ “JavaScript”. 2019年11月3日閲覧。
- ^ “JavaScript”. 2019年11月3日閲覧。
- ^ “Haxe 2.0.0”. 2019年11月3日閲覧。
- ^ “Getting started with Haxe/PHP”. 2019年11月3日閲覧。
- ^ “Haxe 2.4.0”. 2019年11月3日閲覧。
- ^ “Getting started with Haxe/C++”. 2019年11月3日閲覧。
- ^ a b “Haxe 2.10.0”. 2019年11月3日閲覧。
- ^ “.NET version and external libraries”. 2019年11月3日閲覧。
- ^ “Getting started with Haxe/Java”. 2019年11月3日閲覧。
- ^ “Replace hxjava-std with Java 8.”. 2019年11月3日閲覧。
- ^ a b “Haxe 3.2.0-rc.2”. 2019年11月3日閲覧。
- ^ “Getting started with Haxe/Cppia”. 2019年11月3日閲覧。
- ^ “Haxe 3.3.0-rc.1”. 2019年11月3日閲覧。
- ^ “Haxe 3.3.0-rc.1”. 2019年11月3日閲覧。
- ^ “Haxe 4.0.0-rc.3”. 2019年11月3日閲覧。
- ^ Language Features - Haxe - The Cross-platform Toolkit
- ^ Enum Instance - Haxe - The Cross-platform Toolkit
- ^ WWX2015 Haxe in the Enterprise
- ^ Getting Rid of Flash ?
- ^ Haxeのネーミングについて言語開発者のコメント
- ^ “London Haxe Meetup 20th October 2016 - Part 2”. Haxe Foundation. 2019年3月15日閲覧。
- ^ “HashLink - Haxe Virtual Machine”. Haxe Foundation. 2019年3月15日閲覧。
- ^ “About - Haxe Game Engine”. Heaps.io. 2019年3月15日閲覧。
- ^ “Hello HashLink”. Heaps.io. 2019年3月15日閲覧。
外部リンク
- 公式Haxeウェブサイト
- Try Haxe! - Web上でHaxeの動作を確認できる実行環境
- OpenFL - Haxeのゲーム用マルチプラットフォームライブラリ
haXe
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2012/04/17 08:02 UTC 版)
haXe | |
---|---|
パラダイム | マルチパラダイム |
登場時期 | 2005 |
開発者 | Nicolas Cannasse |
最新リリース | 2.09[1](2012年4月14日 ) |
型付け | 静的 |
影響を受けた言語 | ActionScript, OCaml |
プラットフォーム | Cross-platform |
ライセンス | BSD and GPL v2 |
ウェブサイト | haxe.org |
haXe(ヘックス[2]、発音記号は /heks/[3][4])はコンピュータ・プログラム用言語の1つであり、対応するウェブサイト上でなら汎用言語として使用でき、オープンソースで汎用性の高いクロスプラットフォームの高級プログラミング言語[5]である。言語は ActionScript 3 から派生していて類似している[6]。API も NME により Adobe Flash と同等のものが提供されている[6]。
以下のアプリケーションを生成できる
- Adobe Flash アプリケーションとゲーム
- デスクトップアプリケーション (Microsoft Windows, Linux, Mac OS X)
- モバイルアプリケーション (Android, iOS, HP webOS, BlackBerry)
- HTML5 アプリケーション
- サーバーサイド ウェブアプリケーション
単一の無修正の1つのコードベースから全てのプラットフォーム向けのプログラムを haXe 開発環境内で生成できる[7]。
目次 |
出力ターゲット
現在のターゲットは
- Adobe Flash 6-8 (AVM1)
- Adobe Flash 9以降 (AVM2)
- Neko
- PHP
- ActionScript 3 (ActionScript のソースコードとして生成)
- JavaScript
- C++
以下のターゲットが開発中
言語
haXeは ActionScript 3 にその起源を持っているので、既存の全ての Flash API が使用することができるが、アドビシステムズ社のコンパイラ(例えば、スコーピングおよびデータの型付けに関して)と比べて、haXe はより形式の整ったコードとプログラミング標準を提供する。
haXeは、ActionScript 3.0のように、ECMAScript に似ていますが、ほとんどの ECMAScript コードは変更せずには haXe の上で実行できない。ECMAScript とは異なり、haXeはコンパイル言語である。オブジェクト指向プログラミング、例外、およびクラスパラメータによる型推論を持つ汎用言語である。ジェネリッククラス、リフレクション、イテレータ、関数型プログラミングが言語およびライブラリに組み込まれている[10]。プログラミング言語の中で珍しく、haXeは強い型と動的型の両方の型システムが含まれている。コンパイラが暗黙的に型をチェックし、コンパイル時のエラーを与えるが、それはまた、型チェックをバイパスして、ターゲットプラットフォームの動的な型処理に依存するプログラミングを可能にする。
関数のパラメータは、haXeでは非常に正確に定義することができる:
function multipleparams (threedimensionalarray : Array<Array<Array<Int>>>, stringval : String, boolval : Bool) { } // 必須ではない整数値を Int としてわたし、Int を返す function optionalargument ( ?i : Int ) : Int { return 0; } // 引数を取らない関数をパラメータとして渡す function functionasparameter ( f : Void -> Void ) { f(); } // Int を引数としてとり、Int を返す関数をパラメータとして渡す function anotherfunctionparm ( f : Int -> Int ) { var result = f(1); } // 任意型を引数としてとり、任意型を返す function icoulddoanything (d : Dynamic) : Dynamic { return d; }
列挙型は、言語の重要な特徴であり、彼らは自分のパラメータを持っており、再帰的にすることができる[11]。それらは、MLやHaskellのような言語の代数的データ型に似ている。 haXeでは、列挙型は、単にほとんどの言語で採用されている"マジック番号"の値がふられてインデックス化されたものよりも、より抽象的ではある。それらは固有の値が含まれていないが、この例のように変数にインスタンス化することができる。
enum Color { red; green; blue; rgb: ( r : Int, g : Int, b : Int ); } class Colors { static function toInt ( c : Color ) : Int { return switch ( c ) { case red: 0xFF0000; case green: 0x00FF00; case blue: 0x0000FF; case rgb(r, g, b): (r << 16) | (g << 8) | b; } } static function validCalls() { var redint = toInt(Color.red); var rgbint = toInt(Color.rgb(100,100,100)); } }
(haXeのリファレンスから改変)
グラフィカルな用途での haXe の例を示す。ここでの出力ターゲットは Adobe Flash、HTML5、デスクトップアプリケーション、モバイルアプリケーションなどである。これは、Flash の MovieClip オブジェクトと同等の機能を持つ NME の MovieClip を使用して赤い四角形を描画する。OpenGL に対応している環境では、それが利用される。(haXe のウェブサイトより改変)
import nme.display.MovieClip; class Test { static function main() { var mc:MovieClip = nme.Lib.current; mc.graphics.beginFill(0xFF0000); mc.graphics.moveTo(50,50); mc.graphics.lineTo(100,50); mc.graphics.lineTo(100,100); mc.graphics.lineTo(50,100); mc.graphics.endFill(); } }
コンパイラの実装とパフォーマンス
haXe のコンパイラは OCaml 言語で実装されている。 haXe の生成コードは、それぞれのターゲットプラットフォーム上で実行されるため、OCaml の知識は、haXe を使用して開発するのに必要ない。また、これはベンチマークのパフォーマンスがターゲットプラットフォームによって異なることを意味し、各プラットフォームの利用可能な機能を最大限に活用するようにカスタマイズする必要がある。
ある1つのベンチマーク[12]では、同等の ActionScript 3 のコードからアドビシステムズ社のコンパイラにより生成される Adobe Flash 9 (AVM2) バイトコードよりも haXe は優れたパフォーマンスを示した。このベンチマークの公表以来、コンパイラはさらに、Flash が使用していないインライン関数や Adobe Alchemy 向けのオペコードを追加することでパフォーマンスを改善した[13]。
Google の multi-language-bench[14] を使ったベンチマークでは、haXe から C++ にコンパイルしたものは、最初から C++ で書かれたものと比較して 39% 程度、Java 言語との比較で 19% 程度遅くなる程度の差であるという結果が出た[15]。
統合開発環境
ActionScript に対応してる統合開発環境の多くが haXe にも対応している。FDT や IntelliJ IDEA はリファクタリングにも対応している。
- FDT - Eclipse プラグイン
- FlashDevelop
- IntelliJ IDEA 公式プラグイン[16]
参照
- ^ haXe CHANGES
- ^ haXe の紹介 - haXe
- ^ Nicholas' answer for haXe pronunciation
- ^ The talking about haXe pronunciation in haXe official mail list
- ^ index - haXe
- ^ a b Comparison of Code - haXe
- ^ Haxe, iPhone & C++ At Last - Game Haxe
- ^ haXe wiki on the community meeting of 28th of January 2010
- ^ The awesome news: new C# & Java targets for haXe. C# is coming out first, hopefully on January. Java will follow on.
- ^ haXe language reference
- ^ haXe reference detailing the use of enum
- ^ AS3->haXe port of the Actionscript Physics Library
- ^ なぜhaXeを使うのですか? - haXe
- ^ multi-language-bench - Benchmarks implemented in multiple languages - Google Project Hosting
- ^ Multi-Language-Bench - Game Haxe
- ^ JetBrains IntelliJ IDEA Plugin Repository :: haXe Support
外部リンク
- 公式 haXe ウェブサイト
- NME - haXe 用の Windows, Mac OS X, Linux, iOS, Android, webOS, BlackBerry, Flash, HTML5 用のハイパフォーマンス・クロスプラットフォームライブラリ
- 公式 haXe 書籍
- haXe Learning - 包括的な haXe チュートリアル wiki.
- Getting Started with HaXe in FDT 5.0
- haXe イントロダクション動画
- RAZAINA.FR - 初心者向けの haXe チュートリアル
- HaQuery - haXe ベースのウェブフレームワーク
Haxe
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/03 01:16 UTC 版)
var apples = 4;var bananas = 3;trace('I have $apples apples.');trace('I have ${apples+bananas} fruit.'); 上記のコードは以下のように出力する。 I have 4 apples.I have 7 fruit.
※この「Haxe」の解説は、「文字列補間」の解説の一部です。
「Haxe」を含む「文字列補間」の記事については、「文字列補間」の概要を参照ください。
- haxeのページへのリンク