Для такой функции, как:
function foo(myParam)
if nargin<1
myParam = 'default value';
end % if
end % function
Я видел, что вместо версии nargin люди использовали что-то вроде следующего:
if ~exist('myParam', 'var')
myParam = 'default value';
end %if
Мне интересно, есть ли какие-либо предпочтения в любом случае?
Версия "~ exist..." для меня имеет то преимущество, что если я изменю порядок параметров моей функции, она должна работать. Однако моя озабоченность этим подходом заключается в том, что я могу случайно перехватить переменные, которые определены глобально или в пределах окружения в случае вложенных функций.
Любые мысли по этому вопросу?