Разница между доступом к элементам ячейки с помощью фигурных скобок и скобок
В чем разница между доступом к элементам в массиве ячеек с помощью скобок ()
и фигурные скобки {}
?
Например, я пытался использовать cell{4} = []
а также cell(4) = []
, В первом случае он устанавливает 4-й элемент []
, но во втором случае он уничтожил элемент ячейки, то есть уменьшил количество элементов ячейки на 1.
2 ответа
Думайте о клеточном массиве как о регулярном гомогенном массиве, все элементы которого являются cell
s. Скобки (()
) просто получить доступ к cell
объект-обертка при доступе к элементам с помощью фигурных скобок ({}
) дает фактический объект, содержащийся в ячейке.
Например,
A={ [5,6], 0 , 0 ,0 };
Будет выглядеть так:
Синтаксис создания элемента равным []
с круглыми скобками на самом деле запрос на удаление этого элемента, поэтому, когда вы просите сделать foo(i) = []
Вы удаляете i-ю клетку. Это не операция присваивания, а RemoveElement
операция, которая использует аналогичный синтаксис для присваивания.
Тем не менее, когда вы делаете foo{i} = []
Вы присваиваете i-й ячейке новое значение (которое является пустым массивом), таким образом очищая содержимое этой ячейки.
Смотрите помощь в этой ссылке. Как вы увидите, доступ с помощью круглых скобок () дает вам подмножество ячейки (то есть под-ячейки), а фигурные скобки {} дают вам содержимое ячейки, к которой вы пытаетесь обратиться.