モジュール
-
File
:: Constants (24) - Kernel (180)
- URI (48)
- Warning (6)
キーワード
-
$ & (12) -
$ & # 39; (12) -
$ + (12) -
$ 1 (12) -
$ 10 (12) -
$ 11 (12) -
$ 2 (12) -
$ 3 (12) -
$ 4 (12) -
$ 5 (12) -
$ 6 (12) -
$ 7 (12) -
$ 8 (12) -
$ 9 (12) -
$ ` (12) -
FNM
_ CASEFOLD (12) -
FNM
_ PATHNAME (12) -
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 1 . 0 (4) - NoMatchingPatternError (6)
- Ruby用語集 (12)
- [] (6)
- deconstruct (6)
-
deconstruct
_ keys (12) - define (6)
- extract (48)
- fnmatch (12)
- fnmatch? (12)
- glob (40)
- match? (9)
- 制御構造 (12)
- 正規表現 (12)
検索結果
先頭5件
-
パターンマッチ (15057.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 演算子を用いて実装されており、単体の式や......2]
in [*, String, String, *]
"matched"
else
"not matched"
end
//}
===[a:variable_binding] 変数の束縛
深い構造検査の他のパターンマッチの重要な機能の1つにマッチした部分のローカル変数への束縛があります。束縛の基本的な形はマッチし......深いマッチを可能にする機能です。(『束縛』は、パターンマッチの輸入元である関数型言語の用語で、Ruby では代入と読み替えても問題ありません)
Rubyでのパターンマッチは case/in 式を用いて実装されています。
case <expr... -
CSV
:: Row # deconstruct _ keys(keys) -> Hash (34.0) -
パターンマッチに使用するヘッダの名前と値の Hash を返します。
...
パターンマッチに使用するヘッダの名前と値の Hash を返します。
このメソッドはヘッダ名の型をシンボルに変換しないため、ヘッダ名が文字列かつ Hash パターン でパターンマッチしたい場合はキーをシンボルに変換する......必要があります。
@param keys パターンマッチに使用するヘッダの名前の配列を指定します。nil の場合は全てをパターンマッチに使用します。
//emlist[例][ruby]{
require "csv"
row = CSV::Row.new([:header1, :header2, :header3], [1, 2, 3])
case row
in... -
File
. fnmatch(pattern , path , flags = 0) -> bool (34.0) -
ファイル名のパターンマッチ fnmatch(3) を行います。 path が pattern にマッチすれば真を返します。そうでない場合には false を返します。
...ファイル名のパターンマッチ fnmatch(3) を行います。
path が pattern にマッチすれば真を返します。そうでない場合には false を返します。
@param pattern パターンを文字列で指定します。ワイルドカードとして `*',
`**`,......|
p File.fnmatch("foo*", f)
}
# => true
# true
# false
//}
@param path パスを表す文字列を指定します。
@param flags パターンマッチの動作を以下で述べる定数の論理和で指定します。
flags のデフォルト値は0(フラグ指定なし)......NM_NOESCAPE) # => true
//}
: FNM_PATHNAME
ワイルドカード `*', `?', `[]' が `/' にマッチしなくなります。
シェルのパターンマッチにはこのフラグが使用されています。
//emlist[][ruby]{
p File.fnmatch('*', '/', File::FNM_PATHNAME) # => false
p File.fnma... -
File
. fnmatch?(pattern , path , flags = 0) -> bool (34.0) -
ファイル名のパターンマッチ fnmatch(3) を行います。 path が pattern にマッチすれば真を返します。そうでない場合には false を返します。
...ファイル名のパターンマッチ fnmatch(3) を行います。
path が pattern にマッチすれば真を返します。そうでない場合には false を返します。
@param pattern パターンを文字列で指定します。ワイルドカードとして `*',
`**`,......|
p File.fnmatch("foo*", f)
}
# => true
# true
# false
//}
@param path パスを表す文字列を指定します。
@param flags パターンマッチの動作を以下で述べる定数の論理和で指定します。
flags のデフォルト値は0(フラグ指定なし)......NM_NOESCAPE) # => true
//}
: FNM_PATHNAME
ワイルドカード `*', `?', `[]' が `/' にマッチしなくなります。
シェルのパターンマッチにはこのフラグが使用されています。
//emlist[][ruby]{
p File.fnmatch('*', '/', File::FNM_PATHNAME) # => false
p File.fnma... -
Date
# deconstruct _ keys(array _ of _ names _ or _ nil) -> Hash (28.0) -
パターンマッチに使用する名前と値の Hash を返します。
...
パターンマッチに使用する名前と値の Hash を返します。
キーに利用できる名前は以下の通りです。
* :year
* :month
* :day
* :yday
* :wday
@param array_of_names_or_nil パターンマッチに使用する名前の配列を指定します。nil の場......合は全てをパターンマッチに使用します。
//emlist[例][ruby]{
d = Date.new(2022, 10, 5)
if d in wday: 3, day: ..7 # deconstruct_keys が使われます
puts "first Wednesday of the month"
end
#=> "first Wednesday of the month" が出力される
case d
in year: ...2022
puts "... -
DateTime
# deconstruct _ keys(array _ of _ names _ or _ nil) -> Hash (28.0) -
パターンマッチに使用する名前と値の Hash を返します。
...
パターンマッチに使用する名前と値の Hash を返します。
キーに利用できる名前は以下の通りです。
* :year
* :month
* :day
* :yday
* :wday
* :hour
* :min
* :sec
* :sec_fraction
* :zone
@param array_of_names_or_nil パターンマッチに使......用する名前の配列を指定します。nil の場合は全てをパターンマッチに使用します。
//emlist[例][ruby]{
dt = DateTime.new(2022, 10, 5, 13, 30)
if dt in wday: 1..5, hour: 10..18 # deconstruct_keys が使われます
puts "Working time"
end
#=> "Working time" が出... -
Time
# deconstruct _ keys(array _ of _ names _ or _ nil) -> Hash (28.0) -
パターンマッチに使用する名前と値の Hash を返します。
...
パターンマッチに使用する名前と値の Hash を返します。
キーに利用できる名前は以下の通りです。
* :year
* :month
* :day
* :yday
* :wday
* :hour
* :min
* :sec
* :subsec
* :dst
* :zone
@param array_of_names_or_nil パターンマッチに......使用する名前の配列を指定します。nil の場合は全てをパターンマッチに使用します。
//emlist[例][ruby]{
t = Time.utc(2022, 10, 5, 21, 25, 30)
if t in wday: 3, day: ..7 # deconstruct_keys が使われます
puts "first Wednesday of the month"
end
#=> "first Wednes... -
NEWS for Ruby 2
. 7 . 0 (18.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 に向けてのキーワード引数の仕... -
CSV
:: Row # deconstruct -> [object] (16.0) -
パターンマッチに使用する行の値の配列を返します。
...
パターンマッチに使用する行の値の配列を返します。
//emlist[例][ruby]{
require "csv"
row = CSV::Row.new(["header1", "header2", "header3"], [1, 2, 3])
case row
in [2.., 2.., 2..]
puts "all 2 or more"
in [...2, 2.., 2..]
puts "first column is less than 2, and rest columns... -
File
:: Constants :: FNM _ CASEFOLD -> Integer (16.0) -
アルファベットの大小文字を区別せずにパターンマッチを行います。 File.fnmatch, Dir.globで使用します。
...アルファベットの大小文字を区別せずにパターンマッチを行います。
File.fnmatch, Dir.globで使用します。... -
File
:: Constants :: FNM _ PATHNAME -> Integer (16.0) -
ワイルドカード `*', `?', `[]' が `/' にマッチしなくなります。 シェルのパターンマッチにはこのフラグが使用されています。 File.fnmatch, Dir.globで使用します。
...ワイルドカード `*', `?', `[]' が `/' にマッチしなくなります。
シェルのパターンマッチにはこのフラグが使用されています。
File.fnmatch, Dir.globで使用します。... -
Kernel
$ $ & -> String | nil (16.0) -
現在のスコープで最後に成功した正規表現のパターンマッチでマッチした文字列です。 最後のマッチが失敗していた場合には nil となります。
...現在のスコープで最後に成功した正規表現のパターンマッチでマッチした文字列です。
最後のマッチが失敗していた場合には nil となります。
Regexp.last_match[0] と同じです。
この変数はローカルスコープかつスレッドロー... -
Kernel
$ $ & # 39; -> String | nil (16.0) -
現在のスコープで最後に成功した正規表現のパターンマッチでマッチした 部分より後ろの文字列です。 最後のマッチが失敗していた場合には nil となります。
...現在のスコープで最後に成功した正規表現のパターンマッチでマッチした
部分より後ろの文字列です。
最後のマッチが失敗していた場合には nil となります。
Regexp.last_match.post_match と同じです。
この変数はローカルスコ...