別のキーワード
種類
- インスタンスメソッド (132)
- 特異メソッド (12)
- モジュール関数 (11)
モジュール
- Enumerable (77)
- Process (11)
検索結果
先頭5件
-
Array
# sort -> Array (18204.0) -
配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。
...配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。
sort! は self を破壊的にソートし、self を返します。
ブロックとともに呼び出された時には、要素......= [ "d", "a", "e", "c", "b" ]
p ary1.sort #=> ["a", "b", "c", "d", "e"]
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort #=> ["10", "11", "7", "8", "9"] (文字列としてソートするとこうなる)
p ary2.sort{|a, b| a.to_i <=> b.to_i }......#=> ["7", "8", "9", "10", "11"] (ブロックを使って数字としてソート)
# sort_by を使っても良い
p ary2.sort_by{|x| x.to_i } #=> ["7", "8", "9", "10", "11"]
//}
@see Enumerable#sort_by
, Array#sort_by!... -
Array
# sort {|a , b| . . . } -> Array (18204.0) -
配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。
...配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。
sort! は self を破壊的にソートし、self を返します。
ブロックとともに呼び出された時には、要素......= [ "d", "a", "e", "c", "b" ]
p ary1.sort #=> ["a", "b", "c", "d", "e"]
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort #=> ["10", "11", "7", "8", "9"] (文字列としてソートするとこうなる)
p ary2.sort{|a, b| a.to_i <=> b.to_i }......#=> ["7", "8", "9", "10", "11"] (ブロックを使って数字としてソート)
# sort_by を使っても良い
p ary2.sort_by{|x| x.to_i } #=> ["7", "8", "9", "10", "11"]
//}
@see Enumerable#sort_by
, Array#sort_by!... -
Enumerable
# sort _ by -> Enumerator (6230.0) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。
...]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort_by を使わない......れます。
従って downcase の実行速度が遅ければ sort の速度が致命的に低下します。
//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }
//}
一方、次のように sort_by を使うと downcase の実行回数は要素数と同じ......ist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort_by {|v| v.downcase }
//}
以下の、実行回数の検証結果を参照してみてください。
//emlist[][ruby]{
class Integer
def count
$n += 1
self
end
end
ary = []
1.upto(1000) {|v| ary << rand(v) }
$n = 0
ary.sort {|a,b| a.co... -
Enumerable
# sort _ by {|item| . . . } -> [object] (6230.0) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。
...]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort_by を使わない......れます。
従って downcase の実行速度が遅ければ sort の速度が致命的に低下します。
//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }
//}
一方、次のように sort_by を使うと downcase の実行回数は要素数と同じ......ist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort_by {|v| v.downcase }
//}
以下の、実行回数の検証結果を参照してみてください。
//emlist[][ruby]{
class Integer
def count
$n += 1
self
end
end
ary = []
1.upto(1000) {|v| ary << rand(v) }
$n = 0
ary.sort {|a,b| a.co... -
Array
# sort! -> self (6204.0) -
配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。
...配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。
sort! は self を破壊的にソートし、self を返します。
ブロックとともに呼び出された時には、要素......= [ "d", "a", "e", "c", "b" ]
p ary1.sort #=> ["a", "b", "c", "d", "e"]
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort #=> ["10", "11", "7", "8", "9"] (文字列としてソートするとこうなる)
p ary2.sort{|a, b| a.to_i <=> b.to_i }......#=> ["7", "8", "9", "10", "11"] (ブロックを使って数字としてソート)
# sort_by を使っても良い
p ary2.sort_by{|x| x.to_i } #=> ["7", "8", "9", "10", "11"]
//}
@see Enumerable#sort_by
, Array#sort_by!... -
Array
# sort! {|a , b| . . . } -> self (6204.0) -
配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。
...配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。
sort! は self を破壊的にソートし、self を返します。
ブロックとともに呼び出された時には、要素......= [ "d", "a", "e", "c", "b" ]
p ary1.sort #=> ["a", "b", "c", "d", "e"]
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort #=> ["10", "11", "7", "8", "9"] (文字列としてソートするとこうなる)
p ary2.sort{|a, b| a.to_i <=> b.to_i }......#=> ["7", "8", "9", "10", "11"] (ブロックを使って数字としてソート)
# sort_by を使っても良い
p ary2.sort_by{|x| x.to_i } #=> ["7", "8", "9", "10", "11"]
//}
@see Enumerable#sort_by
, Array#sort_by!... -
Process
. # groups -> [Integer] (6108.0) -
補助グループ ID の配列を返します(実効グループ ID を含むかも知れません)。
...配列を返します(実効グループ ID を含むかも知れません)。
返される配列の最大要素数は Process.#maxgroups です。
このメソッドは getgroups(2) の単純なラッパーです。
このことは以下の特徴がプラットフォームに依存することを......ようにできます:
//emlist[][ruby]{
Process.groups.uniq.sort
//}
@raise Errno::EXXX Process.#maxgroups が実際に返される補助グループ ID の
数よりも少ない値を設定していると発生します。
@raise NotImplementedError メソッドが現在の......プラットフォームで実装されていない場合に発生します。
//emlist[][ruby]{
Process.groups #=> [27, 6, 10, 11]
//}
@see getgroups(2)... -
Dir
. [](*pattern , base: nil , sort: true) -> [String] (253.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...にそのブロックを 1 つずつ評価して nil を返します
@param pattern パターンを文字列か配列で指定します。
配列を指定すると複数のパターンを指定できます。
@param flags File.fnmatch に指定できるフラグと同様のフラグ......。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレントディレクトリの代わりに相対パスの基準にするベースディレクトリを指定します。
指......はつかないので、
絶対パスが必要な場合はベースディレクトリを追加する必要があるでしょう。
@param sort true ならワイルドカードや文字セット(鈎括弧)にマッチした結果を
バイナリとして昇順にソートし......ます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "bar", "foo"]
//}
@param base カレントディレクトリの代わりに相対パスの基準にするベースディレクトリを指定します。
指... -
Dir
. glob(pattern , flags = 0 , base: nil , sort: true) -> [String] (253.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...にそのブロックを 1 つずつ評価して nil を返します
@param pattern パターンを文字列か配列で指定します。
配列を指定すると複数のパターンを指定できます。
@param flags File.fnmatch に指定できるフラグと同様のフラグ......。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレントディレクトリの代わりに相対パスの基準にするベースディレクトリを指定します。
指......はつかないので、
絶対パスが必要な場合はベースディレクトリを追加する必要があるでしょう。
@param sort true ならワイルドカードや文字セット(鈎括弧)にマッチした結果を
バイナリとして昇順にソートし......ます。
//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 (253.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...にそのブロックを 1 つずつ評価して nil を返します
@param pattern パターンを文字列か配列で指定します。
配列を指定すると複数のパターンを指定できます。
@param flags File.fnmatch に指定できるフラグと同様のフラグ......。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレントディレクトリの代わりに相対パスの基準にするベースディレクトリを指定します。
指......はつかないので、
絶対パスが必要な場合はベースディレクトリを追加する必要があるでしょう。
@param sort true ならワイルドカードや文字セット(鈎括弧)にマッチした結果を
バイナリとして昇順にソートし......ます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "bar", "foo"]
//}
@param base カレントディレクトリの代わりに相対パスの基準にするベースディレクトリを指定します。
指... -
Numeric
# nonzero? -> self | nil (32.0) -
自身がゼロの時 nil を返し、非ゼロの時 self を返します。
...身がゼロの時 nil を返し、非ゼロの時 self を返します。
//emlist[例][ruby]{
p 10.nonzero? #=> 10
p 0.nonzero? #=> nil
p 0.0.nonzero? #=> nil
p Rational(0, 2).nonzero? #=> nil
//}
非ゼロの時に self を返すため、自身が 0 の......処理をさせたい場合に以
下のように記述する事もできます。
//emlist[例][ruby]{
a = %w( z Bb bB bb BB a aA Aa AA A )
b = a.sort {|a,b| (a.downcase <=> b.downcase).nonzero? || a <=> b }
b #=> ["A", "a", "AA", "Aa", "aA", "BB", "Bb", "bB", "bb", "z"]
//}
@see Numeric#zero?...