User Function
(→General Examples) |
(→General Examples) |
||
Line 64: | Line 64: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
<syntaxhighlight lang="sputnik"> | <syntaxhighlight lang="sputnik"> | ||
Line 74: | Line 75: | ||
return $a + $b; | return $a + $b; | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
+ | <syntaxhighlight lang="sputnik"> | ||
+ | Test("CAT", 111); | ||
+ | |||
+ | Function Test | ||
+ | { | ||
+ | my List ($Name, $Password) = @args; | ||
+ | println("Name '$Name' Password '$Password'"); | ||
+ | }; | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 13:37, 28 January 2013
Function <name> ( <Parameters> ... ) { statements ... }
Contents |
Description
Features
Remarks
Examples
Important Examples
Unlimited Function Parameters
If you’ve most likely noticed that several function such as println() can take an indeterminate number of arguments. Normally when defining a function you specify each argument in the function declaration. Obviously it would be impossible to define an infinite number of arguments in such a way. Sputnik does, however, allow you to accomplish this through the array @args.
@args is an array consisting of all of the arguments passed to a function. Using this method you can bypass the conventional method of defining parameters in the function definition all-together. Here is an example:
println( Add(1, 2, 3) ); // will return 6 Function Add() { my $Total = 0; foreach( @args as my $item ) { $Total += $item; } return $Total; }
If for whatever reason you need to know the total number of arguments passed to a function, You can simply use UBound($args) within the function.
When retrieving arguments in this manner it is important to remember that @args only contains an array of arguments passed by the user. It does not account for default values etc.
Note - If outside a function @args will return an empty array.
General Examples
println( Add(1, 2) ); // will return 3 Function Add($a, $b) { return $a + $b; }
println( Add(2) ); // will return 52 println( Add(2, 4) ); // will return 6 Function Add($a, $b = 50) { return $a + $b; }
println( Add() ); // will return 60 println( Add(2) ); // will return 52 println( Add(2, 4) ); // will return 6 Function Add($a = 10, $b = 50) { return $a + $b; }
Test("CAT", 111); Function Test { my List ($Name, $Password) = @args; println("Name '$Name' Password '$Password'"); };