Haxe(Flash)和内联

时间:2012-03-15 03:24:43

标签: actionscript-3 flash inline haxe

我的问题是在一些情况下在Haxe(AS3)中内联。

  1. 在编译过程中,是否有任何标有关键字inline(静态和非静态),始终的方法都会被内联?
  2. 默认情况下内联属性?如果没有,是否有任何内联方式? (也许通过为它们分配内联访问器方法)
  3. 如果内联方法在编译时消失,为什么可以从中导出仿函数呢?

1 个答案:

答案 0 :(得分:4)

你看过haxe.org上的inline doc吗?

1.(在文档中)对内联函数有一些限制。除此之外你不能内联递归函数。我相信标记为inline的所有方法都将被内联(因为如果你的hxml文件中没有--no-inline oprtion),如果某个带inline标记的方法无法内联,则会抛出错误在编译期间。

2.他们没有。您只能内联静态变量,否则会出现编译错误错误(Inline variable must be static)。请注意,内联var显然无法更改,因此没有理由内联非静态var。如果您内联geterseter

private var v: Bool;

public inline function getv(nv: Bool) {
    return v;
}

它将被视为:

private var v: Bool;

public inline function getv(nv: Bool) {
    return this.v;
}
内联this

将参考该类进行更改。看看example。那里没有内联StopWatched个类属性。

  1. 我不确定我理解什么是仿函数。