function greet ( name string or null )
if name is null then
write_line ( "Hello" )
return // explicit return
.
write_line ( """Hello {{name}}""")
// implicit return
.
return instruction
The return instruction is used to return from a function. Execution in the function is stopped and execution continues in the script that called the function.
The syntax depends on the function’s number of output arguments:
-
no output arguments
If a function has no output arguments then a
returninstruction can be used anywhere in the function’s script to stop execution and return control to the caller of the function.If no
returninstruction is used in the function then the function implicitly returns after executing the last instruction in the script.Example:
Usage:
greet ( "Bob" ) greet ( null )
Output:
Hello Bob Hello
-
one output argument
If a function has one output argument, then the
returnkeyword must be followed by an expression that represents the value returned to the caller.Example:
function count_digits ( string ) -> zero_pos_64 return string.stream.filter ( { char => char.is_digit } ).count .Usage:
const c1 = count_digits ( "a1b2c3" ) assert c1 =v 3L const c2 = count_digits ( "abc" ) assert c2 =v 0L
-
more than one output argument
If a function has more than one output arguments, then the
returnkeyword must be followed by an assignment for each output argument, separated by a comma.Example:
The following function
get_first_and_lasttakes a string as input and returns two values:first: the first character of inputstringlast: the last character of inputstringfunction get_first_and_last ( string ) -> ( first character, last character ) return first = string.get ( 1 ), last = string.get ( string.size ) .Usage:
get_first_and_last ( "abc" ) ( const first = first const last = last ) assert first =v 'a' assert last =v 'c'