Haxe

Haxe
개발자Haxe 재단
발표일2005년(19년 전)(2005)
안정화 버전
4.3.4[1] 위키데이터에서 편집하기 / 2024년 5월 30일 (2일 전)
저장소
  • github.com/HaxeFoundation/haxe 위키데이터에서 편집하기
프로그래밍 언어OCaml
운영 체제안드로이드, iOS, 리눅스, macOS, 윈도우
플랫폼ARM; IA-32, x86-64
라이선스GPL 2.0, 라이브러리: MIT
웹사이트haxe.org

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"});
   }
}

같이 보기

각주

  1. “Release 4.3.4”. 2024년 3월 4일. 2024년 3월 16일에 확인함. 
  2. “Nicolas' announcement of spelling change on Haxe official mail list”. 
  3. Ponticelli, Franco (2008년 2월 11일). 《Professional haXe and Neko》. Wiley. ISBN 0470122137. 
  4. Ivanov, Michael (2011년 5월 24일). 《Away3D 3.6 Cookbook》. Packt Publishing Ltd. ISBN 1849512817. 
  5. Doucet, Lars (2015년 6월 3일). “Haxe/OpenFL for home game consoles”. Gamasutra. 
  6. “Haxe language reference”. 2012년 5월 2일에 원본 문서에서 보존된 문서. 

외부 링크

위키미디어 공용에 관련된
미디어 분류가 있습니다.
Haxe
  • Haxe 위키데이터에서 편집하기 - 공식 웹사이트
  • v
  • t
  • e
파일 형식
소프트웨어
뷰어
저작 도구
서버 측면 소프트웨어
  • 어도비 플래시 미디어 서버
  • 어도비 플래시 캐스트
같이 보기
  • v
  • t
  • e
코드 분석
컴파일러
개념
디버거
  • 파이어버그
  • 코모도 IDE
  • 마이크로소프트 스크립트 디버거
  • 마이크로소프트 스크립트 편집기
  • 오페라 드래곤플라이
  • Venkman
  • 사파리
도큐먼테이션 제네레이터
편집기 (비교)
엔진
프레임워크
관련 기술
패키지 관리자
서버 사이드
유닛 테스트
  • 재스민
  • Mocha
  • QUnit
  • 자바스크립트 유닛 테스트 프레임워크 목록
인물