【问题标题】:In Haxe, is it possible to make an array readonly for other classes?在 Haxe 中,是否可以为其他类创建只读数组?
【发布时间】:2021-02-18 16:21:38
【问题描述】:

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

【问题讨论】:

    标签: haxe


    【解决方案1】:

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

    var internalArray:Array<T>;
    
    public var publicArray(get, never):haxe.ds.ReadOnlyArray<T>;
    
    function get_publicArray() return internalArray;
    

    【讨论】:

    • 如果有人这样做haxe var hey:Array&lt;T&gt; = obj.publicArray; hey.push(new T()) 他们能做到吗?
    • 隐式转换只在一个方向上起作用,所以没有明确的cast
    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2013-11-13
    • 1970-01-01
    • 2020-03-31
    • 2012-12-14
    相关资源
    最近更新 更多