خرید بک لینک

Vote count: 0

I have written the following (very simple) ring buffer class, which should allow array access via the @:arrayAccess macro:

class RingBuffer<T>
{
    private var _elements : Array<T> = null;

    public function new(p_numElements : Int, p_defaultValue : T)
    {
        _elements = new Array<T>();

        for (i in 0 ... p_numElements)
        {
            _elements.push(p_defaultValue);
        }
    }

    public function add(p_value : T) : Void
    {
        // Remove the first element
        _elements.splice(0, 1);
        _elements.push(p_value);
    }


    @:arrayAccess public inline function get(p_index : Int)
    {
      retu _elements[p_index];
    }

    @:arrayAccess public inline function set(p_index : Int, p_value : T)
    {
        _elements[p_index] = p_value;
        retu p_value;
    }
}

But when I try to use array access on an instance of the class, I get an error telling me "Array access is not allowed on...".

Did I do something wrong in using the macro? I was basically following the example in the manual.

asked 3 mins ago

- - , .

برچسب: نویسنده: استخدام کار تاريخ: پنجشنبه 29 بهمن 1394 ساعت: 20:39

صفحه بندی