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
return
instruction can be used anywhere in the function’s script to stop execution and return control to the caller of the function.If no
return
instruction 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
return
keyword 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
return
keyword must be followed by an assignment for each output argument, separated by a comma.Example:
The following function
get_first_and_last
takes a string as input and returns two values:first
: the first character of inputstring
last
: the last character of inputstring
function 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'