diff options
author | Ali Panahi <panaali@gmail.com> | 2020-05-30 12:31:36 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-30 12:31:36 -0400 |
commit | f69c039f1c8e4ef78b49b6ec3a8e5bbd0b4ba8d1 (patch) | |
tree | 56fba97f03a75ad81e4d5c1cfd86916e5c093c93 /scala.html.markdown | |
parent | 54c34420f8606fe641a196aeed875814f55467a6 (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.
Diffstat (limited to 'scala.html.markdown')
-rw-r--r-- | scala.html.markdown | 5 |
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 |