16件ヒット
[1-16件を表示]
(0.055秒)
別のキーワード
検索結果
-
MatchData
# deconstruct -> [String] (15215.0) -
$1, $2, ... を格納した配列を返します。
...要素に含みません。
グループにマッチした部分文字列がなければ対応する要素は nil になります。
//emlist[例][ruby]{
/(foo)(bar)(BAZ)?/ =~ "foobarbaz"
p $~.to_a # => ["foobar", "foo", "bar", nil]
p $~.captures # => ["foo", "bar", nil]
//}
@see MatchData... -
パターンマッチ (576.0)
-
パターンマッチ * patterns * variable_binding * variable_pinning * matching_non_primitive_objects * guard_clauses * current_feature_status * pattern_syntax * some_undefined_behavior_examples
...験的な機能です。(『束縛』は、パターンマッチの輸入元である関数型言語の用語で、Ruby では代入と読み替えても問題ありません)
Rubyでのパターンマッチは in 演算子を用いて実装されており、単体の式や
<expression> in <patt......PatternError が発生します。
そのため、条件付きのマッチや展開に case 式が使われることがあります。
//emlist[][ruby]{
config = {db: {user: 'admin', password: 'abc123'}}
case config
in db: {user:} # ネストしてハッシュにマッチして、その値を変......照してください。
===[a:patterns] パターン
パターンで利用できるものには次のものがあります。
* すべてのRubyオブジェクト (when と同じように、『===』演算子でマッチする) (「Value パターン」)
* Array パターン: 『[<subpattern......にする機能です。(『束縛』は、パターンマッチの輸入元である関数型言語の用語で、Ruby では代入と読み替えても問題ありません)
Rubyでのパターンマッチは case/in 式を用いて実装されています。
case <expression>
in <pattern1>... -
MatchData
# captures -> [String] (115.0) -
$1, $2, ... を格納した配列を返します。
...要素に含みません。
グループにマッチした部分文字列がなければ対応する要素は nil になります。
//emlist[例][ruby]{
/(foo)(bar)(BAZ)?/ =~ "foobarbaz"
p $~.to_a # => ["foobar", "foo", "bar", nil]
p $~.captures # => ["foo", "bar", nil]
//}
@see MatchData...