Подтвердить что ты не робот

Разница между доступом к элементам ячейки с использованием фигурных скобок и круглых скобок

В чем разница между доступом к элементам в массиве ячеек с помощью круглых скобок () и фигурных скобок {}?

Например, я попытался использовать cell{4} = [] и cell(4) = []. В первом случае он установил 4 th элемент [], но во втором случае он уничтожил элемент ячейки, то есть уменьшил количество элементов ячейки на 1.

4b9b3361

Ответ 1

Подумайте о массиве ячеек как регулярном гомогенном массиве, элементами которого являются все cell s. Скобки (()) просто обращаются к объекту-оболочке cell, а доступ к элементам, использующим фигурные наручи ({}), дает фактический объект, содержащийся внутри ячейки.

Например,

A={ [5,6], 0 , 0 ,0 };

Будет выглядеть так:

enter image description here

Синтаксис создания элемента, равного [] с круглыми скобками, на самом деле является запросом на удаление этого элемента, поэтому, когда вы просите сделать foo(i) = [], вы удаляете i-ю ячейку. Это не операция присваивания, а скорее операция RemoveElement, которая использует аналогичный синтаксис для присваивания.

Однако, когда вы делаете foo{i} = [], вы назначаете i-й ячейке новое значение (которое представляет собой пустой массив), тем самым очищая содержимое этой ячейки.

Ответ 2

См. справку в этой ссылке. Как вы увидите, доступ с помощью круглых скобок() дает вам подмножество ячейки (т.е. Подэлемент), в то время как фигурные скобки {} дает вам содержимое ячейки, к которой вы пытаетесь получить доступ.