From db3d51ddc421dad68abddb95d01ffdab440197d6 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 19 Mar 2023 03:24:43 +0900 Subject: feat(content): specify heading id --- .../ruby-then-keyword-and-case-in/index.html | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html') diff --git a/public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html b/public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html index 097d417..ba31a99 100644 --- a/public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html +++ b/public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html @@ -65,15 +65,15 @@

-
-

TL; DR

+
+

TL; DR

case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。

-
-

then とは

+
+

then とは

使われることは稀だが、Ruby では then がキーワードになっている。次のように使う:

@@ -110,8 +110,8 @@ end
-
-

なぜ普段は書かなくてもよいのか

+
+

なぜ普段は書かなくてもよいのか

普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。

@@ -144,8 +144,8 @@ puts 'Hello, World!' -

なぜ then; や改行が必要か

+
+

なぜ then; や改行が必要か

なぜ then; や改行 (以下 「then 等」) が必要なのだろうか。次の例を見てほしい:

@@ -175,8 +175,8 @@ b

-
-

case - in における then

+
+

case - in における then

ようやく本題にたどり着いた。来る Ruby 3.0 では casein キーワードを使ったパターンマッチングの構文が入る予定である。この構文でもパターン部との区切りとして then 等が必要になる。 (現在の) Ruby には formal な形式での文法仕様は存在しないので、yacc の定義ファイルを参照した (yacc の説明は省略)。

@@ -259,8 +259,8 @@ p_cases end
-
-

まとめ

+
+

まとめ

  • ifcase の条件の後ろには then;、改行のいずれかが必要 -- cgit v1.2.3-70-g09d2