The Return keyword causes program flow to exit a function or method and return a value to the calling statement.
Return value
The Return keyword is used to exit a function or method while providing a return value.
In Strict mode, all functions and methods must explicitly return a value.
In non-Strict mode, Return may be used with or without a value to simply exit a function or method at any point. When the return value is omitted in this way, a default zero or Null value, or an empty string, will be returned, depending on the function or method's return type.
Note that Return can be omitted completely in non-Strict mode; a default zero or Null value, or an empty string, will be returned to the caller at the natural end of the function or method.
Function | Method
Language reference
This runnable example returns a string dependent on the animal passed to the MakeSound function; try changing "dog" to "cat" or "cow":
Function
Main
()
Local
animal
:
String
=
"dog"
Print
"The "
+
animal
+
" says "
+
MakeSound
(
animal
)
End
Function
MakeSound
:
String
(
animal_type
:
String
)
Select
animal_type
Case
"dog"
Return
"Woof!"
Case
"cat"
Return
"Meeow!"
Case
"cow"
Return
"Moo!"
End
End
In non-Strict mode, you can call Return without a value, in which case a default value will be returned. (See description.)
In this example, if level is zero we simply exit the function early with a Return call.
However, note that if level is non-zero, the example doesn't call Return at all; in this case, a default value would be returned at the end of the function.
Function
PassedTest
(
level
)
If
level
=
0
Then
Return
If
level
=
1
Then
Print
"Top dog!"
If
level
=
2
Then
Print
"Not bad!"
If
level
=
3
Then
Print
"Loser!"
End
(You could of course add a Return at the end of this function if you wanted to. Return 1, for example, would allow the function to return 0 for a test failure and 1 for a pass.)
Here's the same example updated for Strict mode. Note that we must return a value here; in this case, the Return at the end is not optional (though the value could be anything).
Function
PassedTest
:
Int
(
level
:
Int
)
If
level
=
0
Then
Return
0
If
level
=
1
Then
Print
"Top dog!"
If
level
=
2
Then
Print
"Not bad!"
If
level
=
3
Then
Print
"Loser!"
Return
1
End
In Strict mode, a minimal Monkey program would look like this, with the Main function explicitly returning an integer value:
Function
Main
:
Int
()
Return
1
End