- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
inline public var length(getLength,null):Float;
	inline public function getLength():Float {
		return Math.abs(Vector3D.distance(this,new Vector3D()));
	}
	inline public var lengthSquared(getLengthSquared,null):Float;
	inline public function getLengthSquared():Float {
		return length * length;
	}
 Follow us!
 Follow us!
Приходится смотреть через ?page=794
Ctrl+R не помогает.
inline
я что-то не догоняю?
- вычисляем квадратный корень для определения length,
- потом берем его модуль,
- потом это все возводим в квадрат (благо умножением)
Как-бы взятие корня и умножение вместе с модулем стоило бы выкинуть нафиг,
но зато, сцуко, соптимизировали - все функции inline
Тот же вызов функции, сам по себе, достаточно дорогой, чтобы инлайн имел смысл. Из смешных вещей, например, кустарная реализация целочисленного деления быстрее (раза в два, если не больше) чем то, что есть в виртуальной машине, но без инлайна не имело бы смысла, т.как вызов пользовательской функции был бы дороже.