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

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

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

2 ответа

Решение

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

Например,

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

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

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

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

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

Другие вопросы по тегам