summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAli Panahi <panaali@gmail.com>2020-05-30 12:31:36 -0400
committerGitHub <noreply@github.com>2020-05-30 12:31:36 -0400
commitf69c039f1c8e4ef78b49b6ec3a8e5bbd0b4ba8d1 (patch)
tree56fba97f03a75ad81e4d5c1cfd86916e5c093c93
parent54c34420f8606fe641a196aeed875814f55467a6 (diff)
Update Scala - clarify `return` keyword usage
Add an example to clarify that the `return` keyword only returns from the inner-most `def` that surrounds it not the output of the lambda function.
-rw-r--r--scala.html.markdown5
1 files changed, 3 insertions, 2 deletions
diff --git a/scala.html.markdown b/scala.html.markdown
index c7a8842e..08fd37e4 100644
--- a/scala.html.markdown
+++ b/scala.html.markdown
@@ -252,7 +252,7 @@ weirdSum(2, 4) // => 16
// The return keyword exists in Scala, but it only returns from the inner-most
// def that surrounds it.
// WARNING: Using return in Scala is error-prone and should be avoided.
-// It has no effect on anonymous functions. For example:
+// It has no effect on anonymous functions. For example here you may expect foo(7) should return 17 but it returns 7:
def foo(x: Int): Int = {
val anonFunc: Int => Int = { z =>
if (z > 5)
@@ -260,9 +260,10 @@ def foo(x: Int): Int = {
else
z + 2 // This line is the return value of anonFunc
}
- anonFunc(x) // This line is the return value of foo
+ anonFunc(x) + 10 // This line is the return value of foo
}
+foo(7) // => 7
/////////////////////////////////////////////////
// 3. Flow Control