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).
Этот тип не представляет свойство.
Проверяйте, если x
действительно x
:
testtype(x, Type::Singleton(x))
Но следующий вызов делает то же самое:
bool(x = x)
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:
|
Любой объект MuPAD® |
|
Любой объект идентифицировать |
Смотрите testtype