码迷,mamicode.com
首页 > 其他好文 > 详细

Haxe数据类型

时间:2014-08-12 16:50:04      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   io   strong   

以下是Haxe里面的一些数据类型

  1. 基本类型
  2. 空特性
  3. 枚举
  4. 匿名结构
  5. 方法
  6. 动态
  7. 抽象

1. 基本类型
Bool, Float, Int

2. 空特性
由于Haxe可以被编译为各种不同的target,不同语言对于给基本类型赋"null"值的作法都不同。动态语言可以给基本类型赋null,但是静态语言不可以。为了处理这些不同,在给基本类型赋"null"值时,在haxe里就需要做一些特殊处理,用"Null<T>"修饰类型

var nullValue : Null<Int> = null;

3. 类

class Point {
  var x : Int;
  var y : Int;
  public function new(x,y) {
    this.x = x;
    this.y = y;
  }
  public function toString() {
    return "Point("+x+","+y+")";
  }
}

  - new方法是构造函数
  - 其他地方和别的语言没大区别

3.1 继承
  使用extends来继承
  子类的构造函数不是必须的,但如果要创建自己的构造函数,则必须先调用super()
  若子类要覆写父类的方法,则必须使用override关键字

3.2 接口
  关键字:interface
  接口内方法不需要实现
  接口内的所有方法及属性都必须明确类型
  - 若一个类同时继承多个接口,每个接口都以implements开头

4. 枚举类型

enum Color {
  Red;
  Green;
  Blue;
  Rgb(r:Int, g:Int, b:Int);
}

  Red, Green, Blue, Rgb(r:Int, g:Int, b:Int)这些都是这个枚举类型(Color)的构造器。
  Haxe里有一个特殊类型——"EnumValue",所有的枚举实例都能赋值给这种类型的变量

var ec:EnumValue = Red;

5. 匿名结构
用于一堆数据的集合

var user = {
  name : "Nicolas",
    age : 32,
    pos : [
      { x : 0, y : 0 },
        { x : 1, y : -1 }
  ],
};

6. 方法

static function test(i:Int, s:String):Bool {
    return true;
}

6.1 可选参数
在参数前加"?",代表此参数为可选参数

static function test(?i:Int, ?s:String):Bool

6.2 给参数赋默认值
使用=号

static function test(i = 12, s = "bar") {
    return "i: " +i + ", s: " +s;
}

7. 动态
如果一个Class实现动态接口,那么这个class会有一个特殊的方法:resolve。当在main里头访问一个不存在的属性或方法时,系统会自动调用该方法,并把尝试访问的属性名或方法名当作参数传进resolve方法里。

class Resolve implements Dynamic<String> {
  public var present:Int;
  public function new() {}
  function resolve(field:String) {
    return "Tried to resolve " +field;
  }
}

class Main {
  static public function main() {
    var c = new Resolve();
    c.present = 2;
    trace(c.present);
    trace(c.resolveMe);
  }
}

8. 抽象(看不懂,以后补充:http://haxe.org/manual/types-abstract.html)

abstract AbstractInt(Int) {
  inline public function new(i:Int) {
    this = i;
  }
}

 

Haxe数据类型,布布扣,bubuko.com

Haxe数据类型

标签:style   blog   http   color   使用   os   io   strong   

原文地址:http://www.cnblogs.com/rexmzk/p/3907504.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!