From 3dbcf1c2c6092b0287bae150eec2271446f95927 Mon Sep 17 00:00:00 2001
From: Pavel Kazlou
Date: Sat, 31 Oct 2015 16:22:59 +0300
Subject: added docs for multi-variable tuple assignment
---
scala.html.markdown | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
(limited to 'scala.html.markdown')
diff --git a/scala.html.markdown b/scala.html.markdown
index 192e03d7..4ba9a31b 100644
--- a/scala.html.markdown
+++ b/scala.html.markdown
@@ -321,9 +321,15 @@ divideInts(10, 3) // (Int, Int) = (3,1)
val d = divideInts(10, 3) // (Int, Int) = (3,1)
d._1 // Int = 3
-
d._2 // Int = 1
+// Alternatively you can do multiple-variable assignment to tuple, which is more
+// convenient and readable in many cases
+val (div, mod) = divideInts(10, 3)
+
+div // Int = 3
+mod // Int = 1
+
/////////////////////////////////////////////////
// 5. Object Oriented Programming
--
cgit v1.2.3
From bc087b50370a3c32c35ef026047c2fa9db9944d8 Mon Sep 17 00:00:00 2001
From: Pavel Kazlou
Date: Sat, 31 Oct 2015 16:39:47 +0300
Subject: usage of named parameters
---
scala.html.markdown | 6 ++++++
1 file changed, 6 insertions(+)
(limited to 'scala.html.markdown')
diff --git a/scala.html.markdown b/scala.html.markdown
index 192e03d7..bc8cd422 100644
--- a/scala.html.markdown
+++ b/scala.html.markdown
@@ -169,6 +169,12 @@ def sumOfSquaresShort(x: Int, y: Int): Int = x * x + y * y
// Syntax for calling functions is familiar:
sumOfSquares(3, 4) // => 25
+// You can use parameters names to specify them in different order
+def subtract(x: Int, y: Int): Int = x - y
+
+subtract(10, 3) // => 7
+subtract(y=10, x=3) // => -7
+
// In most cases (with recursive functions the most notable exception), function
// return type can be omitted, and the same type inference we saw with variables
// will work with function return values:
--
cgit v1.2.3
From d47f06345b37cecf4072523c1c79f63f37846d8c Mon Sep 17 00:00:00 2001
From: Pavel Kazlou
Date: Sat, 31 Oct 2015 16:50:40 +0300
Subject: added docs for default case in pattern matching
---
scala.html.markdown | 3 +++
1 file changed, 3 insertions(+)
(limited to 'scala.html.markdown')
diff --git a/scala.html.markdown b/scala.html.markdown
index 192e03d7..131bd71c 100644
--- a/scala.html.markdown
+++ b/scala.html.markdown
@@ -454,6 +454,9 @@ def matchEverything(obj: Any): String = obj match {
// You can nest patterns:
case List(List((1, 2, "YAY"))) => "Got a list of list of tuple"
+
+ // Match any case (default) if all previous haven't matched
+ case _ => "Got unknown object"
}
// In fact, you can pattern match any object with an "unapply" method. This
--
cgit v1.2.3