Haxe
![]() | |
개발자 | Haxe 재단 |
---|---|
발표일 | 2005년(19년 전)(2005) |
안정화 버전 | 4.3.5[1] ![]() |
저장소 |
|
프로그래밍 언어 | OCaml |
운영 체제 | 안드로이드, iOS, 리눅스, macOS, 윈도우 |
플랫폼 | ARM; IA-32, x86-64 |
라이선스 | GPL 2.0, 라이브러리: MIT |
웹사이트 | haxe |
Haxe는 각기 다른 수많은 컴퓨팅 플랫폼을 대상으로 하나의 코드 기반으로 애플리케이션과 소스 코드를 생성할 수 있는, 고급 크로스 플랫폼 멀티 패러다임 프로그래밍 언어이자 컴파일러이다.[2][3][4][5] GNU GPL 버전 2로 배포되는 자유-오픈 소스 소프트웨어이며 표준 라이브러리의 경우 MIT 라이선스를 따른다.
언어
Haxe는 객체 지향 프로그래밍, 제네릭 프로그래밍, 다양한 함수형 프로그래밍 구조체를 지원하는 범용 목적의 언어이다. 반복, 예외 처리, 코드 반영 등의 기능들 또한 이 언어와 라이브러리의 내장 기능들이다.[6]
클래스
interface ICreature { public var birth:Date; public var name:String; public function age():Int; } class Fly implements ICreature { public var birth:Date; public var name:String; public function age():Int return Date.now().getFullYear() - birth.getFullYear(); }
열거형
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)); } }
익명(무명) 형식
typedef AliasForAnon = { a:Int, b:String, c:Float->Void };
함수형
typedef F = Int->String->Float; typedef F2 = Int->String->F; typedef F3 = Int->String->(Int->String->Float);
추상형
abstract Kilometer(Float) { public function new(v:Float) this = v; } abstract Mile(Float) { public function new(v:Float) this = v; @:to public inline function toKilometer():Kilometer return (new Kilometer(this / 0.62137)); } class Test { static var km:Kilometer; static function main(){ var one100Miles = new Mile(100); km = one100Miles; trace(km); // 160.935 } }
구조적 타이핑
class FooBar { public var foo:Int; public var bar:String; public function new(){ foo=1; bar="2";} function anyFooBar(v:{foo:Int,bar:String}) trace(v.foo); static function test(){ var fb = new FooBar(); fb.anyFooBar(fb); fb.anyFooBar({foo:123,bar:"456"}); } }
같이 보기
- 다트 (프로그래밍 언어)
- 님 (프로그래밍 언어)
- 클로저 (프로그래밍 언어)
- 커피스크립트
- 타입스크립트
- 스칼라 (프로그래밍 언어)
- 발라 (프로그래밍 언어)
- Emscripten
각주
- ↑ “Release 4.3.5”. 2024년 7월 18일. 2024년 7월 23일에 확인함.
- ↑ “Nicolas' announcement of spelling change on Haxe official mail list”.
- ↑ Ponticelli, Franco (2008년 2월 11일). 《Professional haXe and Neko》. Wiley. ISBN 0470122137.
- ↑ Ivanov, Michael (2011년 5월 24일). 《Away3D 3.6 Cookbook》. Packt Publishing Ltd. ISBN 1849512817.
- ↑ Doucet, Lars (2015년 6월 3일). “Haxe/OpenFL for home game consoles”. Gamasutra.
- ↑ “Haxe language reference”. 2012년 5월 2일에 원본 문서에서 보존된 문서.
외부 링크
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)
- Haxe
- 공식 웹사이트
- v
- t
- e
- .as (액션스크립트)
- .amf (액션 메시지 포맷)
- .flv, .f4v (플래시 비디오)
- .fxg (플래시 XML 그래픽스)
- .mxml (MXML)
- .swc (쇼크웨이브 플래시 컴포넌트)
- .swf (쇼크웨이브 플래시)
뷰어 |
|
---|---|
저작 도구 |
|
서버 측면 소프트웨어 |
|
- 플래시 애니메이션
- Local Shared Object
- 보호된 스트리밍
- 리얼 타임 메시징 프로토콜
- 리얼 타임 미디어 플로 프로토콜
- SWFAddress
- SWFFit
- SWFObject
- XMLSocket