summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Bard <github@adambard.com>2018-09-08 09:50:37 -0700
committerGitHub <noreply@github.com>2018-09-08 09:50:37 -0700
commit49a2bf306fcf365192934d006a244a9033909850 (patch)
treed12a60506c59e9396447b32088240e1d8f954199
parente6b01188bf23d747c190b201fa7f0dafec31782c (diff)
parent23cee36b4c056dcd3c01676132cb9a6588fb75ad (diff)
Merge pull request #2769 from cincodenada/patch-2
[scala/en] Make return value example actually demonstrate issue
-rw-r--r--scala.html.markdown14
1 files changed, 9 insertions, 5 deletions
diff --git a/scala.html.markdown b/scala.html.markdown
index 28424684..7429ac9a 100644
--- a/scala.html.markdown
+++ b/scala.html.markdown
@@ -253,16 +253,20 @@ weirdSum(2, 4) // => 16
// 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:
-def foo(x: Int): Int = {
- val anonFunc: Int => Int = { z =>
+def addTenButMaybeTwelve(x: Int): Int = {
+ val anonMaybeAddTwo: Int => Int = { z =>
if (z > 5)
- return z // This line makes z the return value of foo!
+ return z // This line makes z the return value of addTenButMaybeTwelve!
else
- z + 2 // This line is the return value of anonFunc
+ z + 2 // This line is the return value of anonMaybeAddTwo
}
- anonFunc(x) // This line is the return value of foo
+ anonMaybeAddTwo(x) + 10 // This line is the return value of addTenButMaybeTwelve
}
+addTenButMaybeTwelve(2) // Returns 14 as expected: 2 <= 5, adds 12
+addTenButMaybeTwelve(7) // Returns 7: 7 > 5, return value set to z, so
+ // last line doesn't get called and 10 is not added
+
/////////////////////////////////////////////////
// 3. Flow Control