Type::Singleton

Введите представление точно один объект

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

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

Синтаксис

testtype(obj, (t_obj))

Описание

testtype(x, Type::Singleton(y)) эквивалентно bool(x = y).

Вызов testtype(obj, Type::Singleton(t_obj)) эквивалентно bool(x = y), но последний быстрее.

Type::Singleton может использоваться, чтобы создать объединенные типы, особенно в сочетании с Type::Union, Type::Equation и другие типы, ожидающие информацию о типе для подвыражений (см. Пример 2).

Этот тип не представляет свойство.

Примеры

Пример 1

Проверяйте, если x действительно x:

testtype(x, Type::Singleton(x))

Но следующий вызов делает то же самое:

bool(x = x)

Пример 2

Type::Singleton существует, чтобы создать специальные выражения тестирования:

T := Type::Union(Type::Singleton(hold(All)), Type::Constant):

С типом T опция All и любая константа может быть идентифицирована с одним вызовом testtype:

testtype(4, T), testtype(hold(All), T), testtype(x, T)

Но (например, в процедурах) следующий пример работает быстрее:

test := X -> testtype(X, Type::Constant) or bool(X = hold(All)):
test(4), test(hold(All)), test(x)

Один способ протестировать список опций для синтаксической правильности следующий:

T := Type::Union(
       // Name = "..."
       Type::Equation(Type::Singleton(hold(Name)), DOM_STRING),
       // Mode = n, n in {1, 2, 3}
       Type::Equation(Type::Singleton(hold(Mode)), 
                      Type::Interval([1,3], Type::Integer)),
       // Quiet
       Type::Singleton(hold(Quiet))
     ):
testtype((Name = "abcde", Quiet), Type::SequenceOf(T))

Мы только позволяем значения 1, 2, и 3 для Mode, однако:

testtype((Quiet, Mode = 0), Type::SequenceOf(T))

Очевидно, это была бы хорошая идея сказать пользователю, какие опции мы не могли понять:

error("Unknown option(s): ".expr2text(
        select((Quiet, Mode = 0), 
               not testtype, Type::SequenceOf(T))))
Error: Unknown option(s): Mode = 0
delete T, test:

Параметры

obj

Любой объект MuPAD®

t_obj

Любой объект идентифицировать

Возвращаемые значения

Смотрите testtype

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

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте