別のキーワード
種類
- 文書 (72)
- 特異メソッド (36)
- インスタンスメソッド (33)
- クラス (12)
ライブラリ
- ビルトイン (81)
キーワード
- Marshal フォーマット (12)
- Numeric (12)
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (12)
- glob (24)
- pack (21)
- pack テンプレート文字列 (12)
-
ruby 1
. 6 feature (12) - unpack (12)
- パターンマッチ (12)
- 演算子式 (12)
検索結果
先頭5件
-
Dir
. [](*pattern) -> [String] (18118.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
ワイルドカー......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []... -
Dir
. [](*pattern , base: nil) -> [String] (18118.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []... -
Dir
. [](*pattern , base: nil , sort: true) -> [String] (18118.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []......グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "bar", "foo"]
//}
@param base カレント... -
Dir
. glob(pattern , flags = 0) -> [String] (3018.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
ワイルドカー......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []... -
Dir
. glob(pattern , flags = 0) {|file| . . . } -> nil (3018.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
ワイルドカー......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []... -
Dir
. glob(pattern , flags = 0 , base: nil) -> [String] (3018.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []... -
Dir
. glob(pattern , flags = 0 , base: nil) {|file| . . . } -> nil (3018.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []... -
Dir
. glob(pattern , flags = 0 , base: nil , sort: true) -> [String] (3018.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []......グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "bar", "foo"]
//}
@param base カレント... -
Dir
. glob(pattern , flags = 0 , base: nil , sort: true) {|file| . . . } -> nil (3018.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の文字が
^ である時には含まれない文字と一致します。
^ の代わりに ksh や POSIX shel......t[][ruby]{
# 一般的な例
p Dir.glob("*") #=> ["foo", "bar", "baz"]
p Dir.glob("./b*") #=> ["./bar", "./baz"] 先頭に "./" が付いている。
p Dir.glob("*/") #=> ["foo/"] ディレクトリのみにマッチする。
p Dir.glob("wrong_name") #=> []......グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "bar", "foo"]
//}
@param base カレント... -
ruby 1
. 6 feature (78.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...範囲外の文字列を指定したときに例外を返す場合がありましたが、常に nil
を返すようになりました。(String#[]やString#slice と同じ結果を返すと
いうことです)
p "foo".slice!("bar") # <- 以前からこちらは nil を返してい......ymlink("foo", "bar")
p Dir.glob("bar")
=> ruby 1.6.7 (2002-03-01) [i586-linux]
[]
=> ruby 1.6.7 (2002-08-01) [i586-linux]
["bar"]
: 2002-06-13 Hash[]
Hash[] で、キーとなる文字列を dup & freeze していませんでした。
a = "k.......7 (2002-03-01) [i586-linux]
#<MatchData:0x401b1be4>
-:3: wrong argument type nil (expected Match) (TypeError)
^^^^^ MatchData の間違い
=> ruby 1.6.7 (2002-04-04) [i586-linux]
#<MatchData:0x401b1c98>
nil
: 2002-03-25... -
パターンマッチ (48.0)
-
パターンマッチ * patterns * variable_binding * variable_pinning * matching_non_primitive_objects * guard_clauses * current_feature_status * pattern_syntax * some_undefined_behavior_examples
...hingPatternError が発生します。
そのため、条件付きのマッチや展開に case 式が使われることがあります。
//emlist[][ruby]{
config = {db: {user: 'admin', password: 'abc123'}}
case config
in db: {user:} # ネストしてハッシュにマッチして、その値を......//emlist[][ruby]{
case [1, 2, 3]
in [Integer, Integer]
"matched"
else
"not matched"
end
#=> "not matched"
//}
一方 Hash パターン は一部のキーだけ指定している場合(指定しているキー以外にもキーが存在する場合)でもマッチします。
//emlist[][ruby]{......ターンの部品として利用するよ」ということを伝えるためにピン演算子 『^』 を利用することができます。
//emlist[][ruby]{
expectation = 18
case [1, 2]
in ^expectation, *rest
"matched. expectation was: #{expectation}"
else
"not matched. expectation was: #... -
演算子式 (24.0)
-
演算子式 * assign * selfassign * multiassign * range * range_cond * and * or * not * cond
...子があります。
高い ::
[]
+(単項) ! ~
**
-(単項)
* / %
+ -
<< >>
&
| ^
> >= < <=......演算子の優先順位です。
例えば「&&」は「||」より優先順位が高いので、以下のように
解釈されます。
//emlist[][ruby]{
a && b || c #=> (a && b) || c
a || b && c #=> a || (b && c)
//}
ほとんどの演算子は特別な形式のメソッド呼び出しで......子 +, - を表しメソッド定義
などではこの記法を利用します。
//emlist{
| ^ & <=> == === =~ > >= < <= << >>
+ - * / % ** ~ +@ -@ [] []= ` ! != !~
//}
これらの演算子式の定義方法についてはd:spec/def#operatorを参照... -
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (18.0)
-
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) ex q num per and or plus minus ast slash hat sq period comma langl rangl eq tilde dollar at under lbrarbra lbra2rbra2 lbra3rbra3 dq colon ac backslash semicolon
...味する
===[a:hat] ^
: true ^ true
「xor」演算子。排他的論理和。または類似のメソッド。
: a ^= true
「^」演算子の自己代入演算子。aの論理値の反転。
//emlist{
p(a=true);p(a^=true);p(a^=true) #=> true false true
//}
: /^xxx/
正規表現で......を含まない Range オブジェクトを作る範囲演算子です。
全体で範囲式といいます。d:spec/operator#range。
: if /^begin/ .. /^end/ など 条件式 式 .. 式
条件式中の範囲式は特別にフリップフロップのように働きます。
//emlist{
'12345......===[a:lbra2] [
===[a:rbra2] ]
: [1,"some",:ok]
配列のリテラル
: 'abcde'[1,2]
[]メソッドの実行
//emlist{
class String
def [](*a)
'(^^;'
end
end
p( 'abcde'[1,2] ) #=> "(^^;"
//}
: /xx[abc]/
正規表現の文字クラス指定。
===[a:lbra3] (
===[a:rbra......です。
d:spec/literal#numを参照。
: _1 ~ _9
番号指定パラメータ。ブロックの仮引数として参照できます。
//emlist[][ruby]{
# 同じ意味
(1..10).map {|n| n * 2 }
(1..10).map { _1 * 2 }
[3, 1, 2].sort {|n, m| m <=> n }
[3, 1, 2].sort { _2 <=> _1 }
//}
===[a:lbra... -
Array
# pack(template) -> String (12.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...ist[][ruby]{
["abc"].pack("a") # => "a"
["abc"].pack("a*") # => "abc"
["abc"].pack("a4") # => "abc\x00"
"abc\0".unpack("a4") # => ["abc\x00"]
"abc ".unpack("a4") # => ["abc "]
//}
: A
ASCII文字列(スペースを詰める/後続するヌル文字やスペースを削除)
//emlist[][ru....../emlist[][ruby]{
["abc"].pack("Z") # => "a"
["abc"].pack("Z*") # => "abc\x00"
["abc"].pack("Z5") # => "abc\x00\x00"
"abc\0".unpack("Z4") # => ["abc"]
"abc ".unpack("Z4") # => ["abc "]
//}
: b
ビットストリング(各バイトごとに下位ビットから上位ビット)
//emlist[][ruby]{......トワークバイトオーダの signed long
//emlist[][ruby]{
s = "\xFF\xFF\xFF\xFE"
n = s.unpack("N")[0]
if n[31] == 1
n = -((n ^ 0xffff_ffff) + 1)
end
n # => -2
//}
: ネットワークバイトオーダの signed long(その2)
//emlist[][ruby]{
s = "\xFF\xFF\xFF\xFE"
n = s.unpack("N").pack("... -
Array
# pack(template , buffer: String . new) -> String (12.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...ist[][ruby]{
["abc"].pack("a") # => "a"
["abc"].pack("a*") # => "abc"
["abc"].pack("a4") # => "abc\x00"
"abc\0".unpack("a4") # => ["abc\x00"]
"abc ".unpack("a4") # => ["abc "]
//}
: A
ASCII文字列(スペースを詰める/後続するヌル文字やスペースを削除)
//emlist[][ru....../emlist[][ruby]{
["abc"].pack("Z") # => "a"
["abc"].pack("Z*") # => "abc\x00"
["abc"].pack("Z5") # => "abc\x00\x00"
"abc\0".unpack("Z4") # => ["abc"]
"abc ".unpack("Z4") # => ["abc "]
//}
: b
ビットストリング(各バイトごとに下位ビットから上位ビット)
//emlist[][ruby]{......トワークバイトオーダの signed long
//emlist[][ruby]{
s = "\xFF\xFF\xFF\xFE"
n = s.unpack("N")[0]
if n[31] == 1
n = -((n ^ 0xffff_ffff) + 1)
end
n # => -2
//}
: ネットワークバイトオーダの signed long(その2)
//emlist[][ruby]{
s = "\xFF\xFF\xFF\xFE"
n = s.unpack("N").pack("...