Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
argn
nombre effectif d'arguments d'entrée reçus / attendus en sortie d'une fonction
Séquence d'appel
[lhs, rhs] = argn() lhs = argn(1) rhs = argn(2)
Arguments
- lhs
Nombre d'arguments de sortie attendus. Vaut
0
si la fonction a été appelée sans argument de sortie.- rhs
Nombre d'arguments passés en entrée de la fonction Scilab considérée.
Description
Cette fonction est utilisée à l'intérieur d'une définition de fonction.
Elle donne le nombre effectif (au moment de l'appel) d'arguments d'entrée rhs
et de sortie lhs
. Elle permet d'utiliser des arguments optionnels.
L'existence d'un argument d'entrée nommé (hors de la portée d'un éventuel varargin)
peut être testée avec isdef(..,"l") de manière plus robuste
qu'en utilisant argn() . Un exemple figure ci-après. |
Exemples
Exemples élémentaires :
function [res, res2]=test(a, b) [lhs, rhs] = argn() [res, res2] = ("abc", %pi); disp([lhs rhs]) // <<<<<<<<<<< endfunction test(); test(4.321); test(3, -1); test(3, -1, a=0); test(3, -1, c=8); out1 = test(); [o1, o2] = test(%pi);
Avec varargin ou/et varargout:
function [varargout]=disp_argn(varargin) varargout = list("abc",%i); [lhs, rhs] = argn() disp([lhs rhs]) // <<<<<<<<<<< endfunction function [res, varargout]=disp_argn_with_args(a, varargin) res = "abc"; varargout = list(%i); [lhs, rhs] = argn() disp([lhs rhs]) // <<<<<<<<<<< endfunction // varargin disp_argn(1); disp_argn_with_args(1); disp_argn(1, 2); disp_argn_with_args(1, 2); disp_argn(1, 2, 3); disp_argn_with_args(1, 2, 3); // varargout out1 = disp_argn(); out1 = disp_argn_with_args(); [o1, o2] = disp_argn(); [o1, o2] = disp_argn_with_args(); [o1, o2, o3] = disp_argn(); [o1, o2, o3] = disp_argn_with_args();
Test robuste de l'existence d'un argument d'entrée:
function res=test(a, b, varargin) res = "" if isdef("a","l") res = "a passed." end if isdef("b","l") res = res + " b passed." end if isdef("c","l") res = res + " c passed." end endfunction clc test() test(4.321) test(4.321, %z) test(b=3) test(c=3) test(-1, c=3) test(-1, a=2, c=3) test(b=-1, a=2, c=3)
Autre usage fréquent:
function concat=maFonction(nom, option) [lhs, rhs] = argn() if rhs <= 1 then option = "mon argument optionnel"; end if rhs == 0 then error("Au moins un argument attendu"); end concat = nom+" "+option; endfunction
Voir aussi
History
Version | Description |
6.1.0 | L'argument lhs est assigné à zero si appelé sans argument de sortie. |
Report an issue | ||
<< Libraries | Fonctions avancées | deff >> |