aboutsummaryrefslogtreecommitdiffstats
path: root/NEWS
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2019-12-20 21:37:46 +0900
committerYusuke Endoh <mame@ruby-lang.org>2019-12-20 21:37:46 +0900
commit1fea3a7636cfaf25baba1e9f208c68a8a8ba52cc (patch)
tree19d7e2a5ddc20140b20a4366592b106f46ae0502 /NEWS
parentf7aee584987e24768670e96b1455ed1193f91ef2 (diff)
downloadruby-1fea3a7636cfaf25baba1e9f208c68a8a8ba52cc.tar.gz
NEWS: Update the explanation of pattern matching
Add an example of "<expr> in <pattern>", an example of NoMatchingPatternError, and mention that the slides are slightly obsolete.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS18
1 files changed, 14 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index e0efad8100..a67d16ba55 100644
--- a/NEWS
+++ b/NEWS
@@ -32,6 +32,11 @@ sufficient information, see the ChangeLog file or Redmine
p var #=> 1
end
+ case -1
+ in 0 then :unreachable
+ in 1 then :unreachable
+ end #=> NoMatchingPatternError
+
json = <<END
{
"name": "Alice",
@@ -39,13 +44,18 @@ sufficient information, see the ChangeLog file or Redmine
"children": [{ "name": "Bob", "age": 2 }]
}
END
- case JSON.parse(json, symbolize_names: true)
- in {name: "Alice", children: [{name: "Bob", age: age}]}
- p age #=> 2
- end
+
+ JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: name, age: age}]}
+
+ p name #=> "Bob"
+ p age #=> 2
+
+ JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: "Charlie", age: age}]}
+ #=> NoMatchingPatternError
* See the following slides in detail
* https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7
+ * Note that the slides are slightly obsolete
==== The spec of keyword arguments is changed towards 3.0