haxe programming language语法两片

  • 文件

  1. Test.hx

  1. B.hx

  1. build.hxml

// Test.hx
// Test.hx
class Test
{
    static public function main()
    {
        // var a:Int = 1;
        // var b:Int = 1;
        // var name:String = "work";
        // var array:Array<Dynamic> = [1,2,3];
        // var obj:Dynamic = {};
        // var fl:Float = 3.14;// 建议类型后置
        // trace(fl);
         // trace(name);
        // trace(obj);
        // trace(array);
        // trace( a + b );
        // trace("hello world");

        var b:B = new B();
        b.call();
        C.call();
        var d:D = new D();
        d.print();
    }
}
// def a class 
class C
{
    public static function call():Void
    {
        trace("call a static function from C class");

    }
    public function print():Void
    {
        trace("this is a C class print ");

    }
}
class D extends C
{
    // 注意静态的没有继承下来
    public function new()
    {

    }
    override function print()
    {
        trace("this is a D class print");
    }
}
// B.hx
class B
{
    public function new()
    {

    }
    public function call()
    {
        trace("calling B class");
    }
}
// build.hxml
--main Test
# --js bin/main.js # 一次使用一个任务,使用haxe build.hxml
# --python bin/main.py
# --java bin/main.jar
--interp 
// del Test.hx and rename Main.hx
class Main
{
    public static function main()// 让main函数static
    {
        // for loop
        for (i in 1...10)
        {
            trace("tell: ",i);
        }
        // 不能这么做,for里不能做i++的事
        // for (var i = 1; i < 10; i++)
        // {
        //     trace(i);
        // }
        
        // 这样有点恶心,不会污染吗??
        var i = 0;
        while(i < 10)
        {
            trace(i);
            i++;
        }

        if(1 + 11 == 2) // 在条件里测试
        {
            trace("you are right");
        }
        else if(1 + 2 != 2) // test right here
        {
            trace("fuck");
        }

        // 泛型
        var data:Dynamic = {
            key:"value of key"
        };
        trace(data.key);
        // 反射获取data的key对应的值
        trace(Reflect.getProperty(data,"key"));
        
        // haxe 学语法没什么意思,学怎么做haxe的项目吧
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下载内容为官方原装下载资源包 Haxe是一门新兴的开源编程语言开发者称:“相比其他语言(Java的平台是 JVM,C#的平台是.Net,ActionScript的平台是Flash Player等等),Haxe才是真正的多平台语言。不管是开发原生iOS、Android应用,还是网页;不论是应用于服务器还是个人桌面,Haxe都 可以胜任。” Haxe分别为Windows、Mac OSX以及Linux安装程序进行打包,当然如果安装包出现问题或者洁癖者也可以进行手工安装。安装包及手动安装指南尽在下载页面。 Haxe能做什么? 使用Haxe开发的程序可以被编译成: JavaScript:你可以将Haxe程序编译成单一的.js文件,访问DOM APIs并拥有“自动完成”的支持,所有的依赖都在编译时都被搞定了。 Flash:Flash早就放弃移动平台,和桌面平台共存亡了。你可以将Haxe程序编译成一个.swf文件,支持从Flash Player 6到11的所有版本。 NekoVM:将Haxe程序编译成NekoVM字节码,用在服务器相关的程序(比如动态网页),同时也可以用在命令行或者桌面应用中。 PHP:你可以将Haxe程序编译成.php文件。 C++:你可以直接从Haxe源码生成C++的code。NME库使用这项特性在iOS和Android上直接运行Haxe的code。 C#和Java:使用 -java 和 -cs 来生成相应源码 为什么要用HaxeHaxe是一门很强力的语言,有很多引人注目的特性。目标是给开发者一套一体化的工具来创建网站或者应用,一门语言打天下。它可以实现: ECMA风格的客户端、服务器端以及桌面型程序。 风一般迅捷的编译速度。 类型检查带来好处多多。 给特定平台引入缺失的语言特性,例如为Flash开发引入InLining和generics特性、宏、为C++引入动态对象以及运行时类信息等等。 无视平台差异,在不同平台之间轻松切换。 统一的语法以及特性。 一次编写,处处“自动”编译。 解救跨平台开发的一次尝试 由于它可以自动编译生成多种类型的代码,所以无论是iOS、Android、Windows Phone平台之间的本地程序跨平台,还是直接生成HTML5应用,甚至是跨越移动平台和桌面平台,都是解决应用在“不同平台之间”移植所带来痛苦的、一个不错的尝试。 愿望如此美好,引无数英雄尽折腰。不过要彻底根治跨平台的痛苦,恐怕是一条无比漫长艰辛的旅程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值