Say that I have a function, dummy
, with 2 arguments. The arguments can have default values when not supplied in function call. But how do I know is an arguments is not supplied?
I know I can use nargin
, like this
function dummy(arg1, arg2) if nargin < 2 arg2 = 0; end if nargin < 1 arg1 = 0; end % function body
I want to know whether I can check whether an arguments is supplied based on the argument name? Something like supplied(arg2) == false
.
I ask this because, sometimes I want to add new arguments at the front of the argument list (as it may not have a default value), and then I have to change all the if nargin ...
. If I can check by name, nothing has to be changed.
To check if a parameter is provided to a function, use the typeof operator to check if the parameter is not equal to the string "undefined" , e.g. if (typeof param !== 'undefined') . If the condition is met, the parameter was provided to the function.
In mathematics, an argument of a function is a value provided to obtain the function's result. It is also called an independent variable.
Arguments are the values passed from a function call (i.e., they are the values appearing inside the parentheses of the call) and are sent into the function).
During the function call, all arguments are given as positional arguments. Values passed through arguments are passed to parameters by their position.
I always do like that:
if ~exist('arg1','var') arg1=0; end
As said by @Andrey, with this solution you can change the number/order of the arguments of the function, without changing the code. This is not the case with the nargin
solution.
As said by @yuk, if you want to allow to skip arguments you can do:
if ~exist('arg1','var') || isempty(arg1) arg1=arg1DefaultValue; end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With