gpt4 book ai didi

arrays - Haxe 获取数组最后一个元素

转载 作者:行者123 更新时间:2023-12-04 02:37:26 25 4
gpt4 key购买 nike

在 haxe 中,除了使用 arr[arr.length-1] 作为键之外,还有其他方法可以获取数组的最后一个元素吗?我想避免需要对数组的引用。

最佳答案

不,但是你可以创建一个 static extension为此:

using ArrayExtensions;

class Main {
static function main() {
var a = [1, 2, 3];
trace(a.last()); // 3
}
}
class ArrayExtensions {
public static inline function last<T>(a:Array<T>):T {
return a[a.length - 1];
}
}

或者,您可以使用自定义抽象重载数组访问运算符以获得 Python 样式的负索引:

class Main {
static function main() {
var a:PythonArray<Int> = [1, 2, 3];
trace(a[-1]); // 3
}
}

@:forward
abstract PythonArray<T>(Array<T>) from Array<T> to Array<T> {
@:arrayAccess function get(i) {
return if (i < 0) this[this.length - i * -1] else this[i];
}

@:arrayAccess function set(i, v) {
return if (i < 0) this[this.length - i * -1] = v else this[i] = v;
}
}

这有一个缺点,即必须将数组键入为该抽象。

关于arrays - Haxe 获取数组最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61027534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com