Тема: AHK: Проблема с массивом в объекте класса
Я реализовал самый простейший класс ограниченной очереди, однако ,вопреки моим ожиданиям, он не заработал.
После недолгих разбирательств я обнаружил, что проблема возникает тогда, когда я обращаюсь к элементам массива-свойству моего объекта.
Вот код:
class LimitedQueue
{
__New()
{
this.size := 3
this.cells := Array()
}
addElement(element)
{
if (this.cells.MaxIndex() < this.size)
{
this.cells.Push(var)
}
else
{
Loop, % this.size - 1
this.cells[A_Index] := this.cells[A_Index + 1]
this.cells[this.size] := var
}
}
Display()
{
arr := this.cells
Loop, % arr.MaxIndex()
{
s := arr[A_Index]
Display(%s%)
}
}
}
Display(s)
{
MsgBox, %s%
}
obj := new LimitedQueue()
obj.addElement("Hello world")
obj.addElement("Hello world")
obj.addElement("Hello world")
Display(obj.cells[1])Я предполагаю с чем это связано. Я слышал, что нельзя объявлять псевдо-массивы в функции, однако не знал, как это работает по отношению к массивам, созданным функцией Array(). Если это так, то какие элегантные варианты решения проблемы вы могли бы мне посоветовать? Также было бы интересно

