Думайте о массиве ячеек как о регулярном гомогенном массиве, все элементы которого cell
с. Круглые скобки (()
) просто обращаются к объекту-оболочке cell
, а доступ к элементам с помощью фигурных скобок ({}
) дает фактический объект, содержащийся в ячейке.
Например,
A={ [5,6], 0 , 0 ,0 };
будет выглядеть так:
![enter image description here](https://i.stack.imgur.com/ZNy3u.png)
Синтаксис создания элемента равным []
с круглыми скобками на самом деле является запросом на удаление этого элемента, поэтому, когда вы просите сделать foo(i) = []
, вы удаляете i -я клетка Это не операция присваивания, а операция RemoveElement
, которая использует синтаксис, аналогичный присваиванию.
Однако, когда вы делаете foo{i} = []
, вы присваиваете i-й ячейке новое значение (которое является пустым массивом), таким образом очищая содержимое этой ячейки.