Merge pull request #2769 from cincodenada/patch-2

[scala/en] Make return value example actually demonstrate issue
This commit is contained in:
Adam Bard 2018-09-08 09:50:37 -07:00 committed by GitHub
commit 49a2bf306f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -253,16 +253,20 @@ weirdSum(2, 4) // => 16
// def that surrounds it. // def that surrounds it.
// WARNING: Using return in Scala is error-prone and should be avoided. // 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:
def foo(x: Int): Int = { def addTenButMaybeTwelve(x: Int): Int = {
val anonFunc: Int => Int = { z => val anonMaybeAddTwo: Int => Int = { z =>
if (z > 5) 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 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 // 3. Flow Control