смотрели ли вы встроенный документ на haxe.org?
1. (в документе) есть некоторые ограничения для встроенных функций. Кроме того, вы не можете встроить рекурсивную функцию. Я верю, что все методы, помеченные как inline
, будут встроены (потому что в вашем hxml-файле нет опций --no-inline), если какой-либо метод с маркером inline
не может быть встроен, во время компиляции будет выдана ошибка. 1007 *
2.Нет, нет. Вы можете встроить только статические переменные, в противном случае вы получите ошибку компиляции (Inline variable must be static
). Обратите внимание, что встроенный var, очевидно, не может быть изменен, поэтому нет никаких причин для встроенного нестатического var. Если вы в строке geter
или seter
:
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
свойств класса там не встроено.
- Я не уверен, что понимаю, что такое функтор.