繁体   English   中英

Haxe(Flash)和内联

[英]Haxe (Flash) and inlining

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

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

你看过haxe.org上的内联文档吗?

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

他们没有。 您可以只内联静态变量,否则您将收到编译错误错误( 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将参照类被改变。 看看例子 这里没有内联任何StopWatched类属性。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM