NIL

Элемент Singleton доменного DOM_NIL

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

NIL

Описание

NIL является ключевым словом языка MuPAD®, который представляет одноэлементный элемент доменного DOM_NIL.

Область ядра DOM_NIL имеет только один одноэлементный элемент. NIL является ключевым словом языка MuPAD, который представляет этот элемент. NIL не изменяется оценкой, смотрите DOM_NIL.

Чаще всего NIL используется, чтобы представлять “отсутствие” или “пустой” операнд в структуре данных. “Пустой объект”, возвращенный null, не подходит для этого, потому что это удалено из большинства контейнеров (как списки, наборы или выражения) во время оценки.

Когда новый массив от области ядра, DOM_ARRAY создается, его элементы, инициализируется со значением NIL. Функциональный op возвращает NIL для элементов неинициализированного массива. Обратите внимание, однако, что индексный доступ элемента неинициализированного массива возвращает индексируемое выражение вместо NIL.

Локальные переменные процедур, заданных proc, инициализируются с NIL. Тем не менее, предупреждение распечатано если доступы локальная переменная, явным образом не инициализируя ее значение.

В прежних версиях MuPAD NIL использовался, чтобы удалить значения идентификаторов или записи таблиц путем присвоения NIL идентификатору или записи. Это больше не поддерживается. Нужно использовать delete, чтобы удалить значения. NIL теперь является допустимым значением идентификатора и действительным доступом таблицы.

Примеры

Пример 1

В отличие от “пустого объекта”, возвращенного null, NIL не удален из списков и наборов:

[1, NIL, 2, NIL], [1, null(), 2, null()], 
{1, NIL, 2, NIL}, {1, null(), 2, null()}

Пример 2

NIL используется, чтобы представлять “недостающие” записи процедур. Например, самая простая вообразимая процедура имеет следующие операнды:

op(proc() begin end)

Первый NIL, например, представляет список пустых аргументов, второе пустой список локальных переменных и третьего пустое множество опций процедуры.

Пример 3

Элементы массива инициализируются с NIL если не заданный в противном случае. Обратите внимание, однако, что индексный доступ для таких элементов приводит к индексируемому выражению:

A := array(1..2): A[1], op(A,1)

delete A:

Пример 4

Локальные переменные в процедурах неявно инициализируются с NIL. Однако, предупреждение распечатано, если вы используете переменную, явным образом не инициализируя его:

p := proc() local l; begin print(l) end:  p():
Warning: Uninitialized variable 'l' is used.
  Evaluating: p

delete p:

Пример 5

NIL может быть присвоен идентификатору или индексируемому идентификатору как любое другое значение. Такое присвоение больше не удаляет значение идентификатора:

a := NIL:  b[1] := NIL:  a, b[1]

delete a, b:

Смотрите также

Функции MuPAD