Powiedz, że mam funkcję, dummy
, z 2 argumentami. Argumenty mogą mieć wartości domyślne, jeśli nie są podane w wywołaniu funkcji. Ale skąd mam wiedzieć, czy argumenty nie są dostarczane?Jak sprawdzić, czy argument jest podany w wywołaniu funkcji?
wiem, że mogę używać nargin
, jak to
function dummy(arg1, arg2)
if nargin < 2
arg2 = 0;
end
if nargin < 1
arg1 = 0;
end
% function body
Chcę wiedzieć, czy mogę sprawdzić, czy an argumenty dostarczany jest na podstawie nazwy argumentów? Coś takiego jak supplied(arg2) == false
.
Pytam o to, ponieważ czasami chcę dodać nowe argumenty z przodu listy argumentów (ponieważ może nie mieć wartości domyślnej), a następnie muszę zmienić wszystkie if nargin ...
. Jeśli mogę sprawdzić po nazwie, nic nie musi zostać zmienione.
Jest to o wiele lepiej niż nargin, ponieważ nie trzeba zmienić kod w przypadku kiedykolwiek zmiana kolejność parametrów w funkcji. –
Zwykle dodajemy również "... | isempty (arg1) ', więc użytkownik może pominąć' arg1', ale podać 'arg2'. Oczywiście, jeśli "arg1" nie może być puste. – yuk
Abosultely, ale myślałem, że to nie jest tak naprawdę odpowiedź na pytanie. W każdym razie, zredagowałem odpowiedź, także myślę, że musisz użyć '||' (Short Circuit Operator), aby upewnić się, że nie ma błędu, jeśli 'arg1' nie istnieje. – Oli