別のキーワード
キーワード
-
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 1 . 0 (4) - Ruby用語集 (12)
- 制御構造 (12)
検索結果
-
パターンマッチ (15148.0)
-
パターンマッチ * patterns * variable_binding * variable_pinning * matching_non_primitive_objects * guard_clauses * current_feature_status * pattern_syntax * some_undefined_behavior_examples
...パターンマッチ
* patterns
* variable_binding
* variable_pinning
* matching_non_primitive_objects
* guard_clauses
* current_feature_status
* pattern_syntax
* some_undefined_behavior_examples
パターンマッチは、構造化された値に対して、構造をチェック......チを可能にする実験的な機能です。(『束縛』は、パターンマッチの輸入元である関数型言語の用語で、Ruby では代入と読み替えても問題ありません)
Rubyでのパターンマッチは in 演算子を用いて実装されており、単体の式や......ジェクト (when と同じように、『===』演算子でマッチする) (「Value パターン」)
* Array パターン: 『[<subpattern>, <subpattern>, <subpattern>, ...]』 (「Array パターン」)
* Hash パターン: 『{key: <subpattern>, key: <subpattern>, ...}』 (「Hash パタ......深いマッチを可能にする機能です。(『束縛』は、パターンマッチの輸入元である関数型言語の用語で、Ruby では代入と読み替えても問題ありません)
Rubyでのパターンマッチは case/in 式を用いて実装されています。
case <expr......ジェクト (when と同じように、『===』演算子でマッチする) (「Value パターン」)
* Array パターン: 『[<subpattern>, <subpattern>, <subpattern>, ...]』 (「Array パターン」)
* Find パターン: 『[*variable, <subpattern>, <subpattern>, <subpattern>, ..., *vari... -
Ruby用語集 (55.0)
-
Ruby用語集 A B C D E F G I J M N O R S Y
...ラル記法の総称。
参照:d:spec/literal#percent
: 0 オリジン
: zero-based
番号が 0 から始まること。
例えば、
Array や Vector、Matrix などの要素の番号、
String における文字の位置、
といったものは 0 オリジンである。
: 1......ードセパレーター(改行など)で区切られたレコードに分けられ、レコードごと
にパターンマッチングが行われる。
パターンマッチングの前に実行する前処理と後に実行する後処理も記述できる。
===[a:B] B
: Bignum
Ruby......し、切り替えて使うための
ツールの一つ。Linux、macOS などで動作する。
https://github.com/rbenv/rbenv
: RD(Ruby Document format)
Ruby スクリプト中に記述することを念頭に作られたドキュメントフォーマット。
: RDoc
Ruby スクリ... -
NEWS for Ruby 2
. 7 . 0 (49.0) -
NEWS for Ruby 2.7.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...ルか bugs.ruby-lang.org の issue を参照してください。
== 2.6.0 以降の変更
=== 言語仕様の変更
==== パターンマッチ
* パターンマッチが実験的機能として導入されました。 14912
//emlist[][ruby]{
case [0, [1, 2, 3]]
in [a, [b, *c]]
p a #=> 0......スライドを参照してください。
* スライドは少し古い内容になっていることに注意してください。
* パターンマッチに対する警告は「-W:no-experimental」オプションで抑制できます。
==== 3.0 に向けてのキーワード引数の仕......ンで止められます。
* 「$,」にnil以外の値を設定すると警告が出るようになりました。 14240
nil以外の時はArray#joinで参照した時も警告が出ます。
この警告は「-W:no-deprecated」オプションで止められます。
* ヒアドキ... -
NEWS for Ruby 3
. 1 . 0 (25.0) -
NEWS for Ruby 3.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...。 17724
//emlist{
@n = 5
Prime.each_cons(2).lazy.find{_1 in [n, ^@n]}
#=> [3, 5]
//}
* 1行パターンマッチが実験的な機能ではなくなりました。
* 1行パターンマッチが括弧を省略できるようになりました。 16182
//emlist{
[0, 1] => _, x
{y: 2} => y:......のコードでは使用しないでください。 17684
== 組み込みクラスの更新(注目すべきもののみ)
* Array
* 新規メソッド
* Array#intersect?が追加されました。 15198
* Class
* 新規メソッド
* Class#subclassesはレシーバを継承... -
制御構造 (19.0)
-
制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END
...in キーワードを通じてより強力なパターンマッチ構文を提供しています。
//emlist[][ruby]{
case {a: 1, b: 2, c: 3}
in a: Integer => m
"matched: #{m}"
else
"not matched"
end
# => "matched: 1"
//}
パターンマッチ構文についてはspec/pattern_matchingで説......そうはならない
//}
代わりにそのようなメソッド(イテレータ)を定義する必要があります。
//emlist[][ruby]{
class Array
def each2
i = 0
while i < self.size
yield self[i], self[i+1]
i += 2
end
end
end
//}
====[a:break] break
//emlist[例...