在 Haxe 中,是否可以为其他类设置只读数组?

sha*_*hal 1 haxe

我们有haxe.ds.ReadOnlyArray,但它阻止了每个人的推送/弹出。我需要的是能够在课堂内更改它,但不能在课堂外更改。是否可以?当我这样做时public var myArr(default, null):Array<Something>- 它不会让其他类替换数组本身,但它们可以推送/弹出,所以这也不是解决方案。谢谢!

Gam*_*a11 5

您可以使用具有不同名称的只读属性将其作为只读数组公开给外部:

var internalArray:Array<T>;

public var publicArray(get, never):haxe.ds.ReadOnlyArray<T>;

function get_publicArray() return internalArray;
Run Code Online (Sandbox Code Playgroud)

  • 隐式强制转换仅在一个方向上起作用,因此如果没有显式“强制转换”则无法实现。 (2认同)