るりまサーチ

最速Rubyリファレンスマニュアル検索!
273件ヒット [1-100件を表示] (0.092秒)

別のキーワード

  1. util u
  2. erb u
  3. matrix u
  4. _builtin koi8_u
  5. encoding koi8_u

ライブラリ

クラス

モジュール

検索結果

<< 1 2 3 > >>

Enumerable#sort -> [object] (21151.0)

全ての要素を昇順にソートした配列を生成して返します。

...きは例外 TypeError が発生します。

Enumerable#sort は安定ではありません (unstable sort)。
安定なソートが必要な場合は Enumerable#sort_by を使って工夫する必要があります。
詳しくは Enumerable#sort_by の項目を参照してください。

※ 比...
...が同じ要素は元の順序通りに並ぶソートを
「安定なソート (stable sort)」と言います。

//emlist[例][ruby]{
%w(rhea kea flea).sort # => ["flea", "kea", "rhea"]
(1..10).sort { |a, b| b <=> a } # => [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
//}

@see Enumerable#sort_by...

Enumerable#sort {|a, b| ... } -> [object] (21151.0)

全ての要素を昇順にソートした配列を生成して返します。

...きは例外 TypeError が発生します。

Enumerable#sort は安定ではありません (unstable sort)。
安定なソートが必要な場合は Enumerable#sort_by を使って工夫する必要があります。
詳しくは Enumerable#sort_by の項目を参照してください。

※ 比...
...が同じ要素は元の順序通りに並ぶソートを
「安定なソート (stable sort)」と言います。

//emlist[例][ruby]{
%w(rhea kea flea).sort # => ["flea", "kea", "rhea"]
(1..10).sort { |a, b| b <=> a } # => [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
//}

@see Enumerable#sort_by...

Net::IMAP#uid_sort(sort_keys, search_keys, charset) -> [Integer] (9357.0)

SORT コマンド送り、メールボックス内の メッセージをソートした結果を返します。

...SORT コマンド送り、メールボックス内の
メッセージをソートした結果を返します。

SORT
コマンドは 5256 で定義されています。
詳しくはそちらを参照してください。
このコマンドは Net::IMAP#capability の返り値を見ることで
...
...用可能かどうか判断できます。

sort
_keys にはソート順を決めるキーを文字列の配列で指定します。
"ARRIVAL", "CC", "FROM", "TO", "SUBJECT" などが指定できます。
詳しくは 5265 の BASE.6.4.SORT の所を見てください。

search_key には検索条...
...とします。

返り値は message sequence number の配列を返します。

例:
p imap.sort(["FROM"], ["ALL"], "US-ASCII")
#=> [1, 2, 3, 5, 6, 7, 8, 4, 9]
p imap.sort(["DATE"], ["SUBJECT", "hello"], "US-ASCII")
#=> [6, 7, 8, 1]
@param sort_key ソート順のキー(文字列配列)
@...

Enumerable#sort_by -> Enumerator (9305.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

...st[例][ruby]{
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 の実行回数は要素数と同じ...
...][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.count...

TSort#tsort_each -> Enumerator (9219.0)

TSort#tsort メソッドのイテレータ版です。 obj.tsort_each は obj.tsort.each と似ていますが、 ブロックの評価中に obj が変更された場合は予期しない結果になる ことがあります。

...TSort#tsort メソッドのイテレータ版です。
obj.tsort_each は obj.tsort.each と似ていますが、
ブロックの評価中に obj が変更された場合は予期しない結果になる
ことがあります。

tsort_each は nil を返します。
閉路が存在するとき、...
...TSort::Cyclic を起こします。

@raise TSort::Cyclic 閉路が存在するとき、発生します.

//emlist[使用例][ruby]{
require 'tsort'

class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end

non_sort = {...
...1=>[2, 3], 2=>[3], 3=>[], 4=>[]}

non_sort.tsort_each {|node|
non_sort.tsort_each_child(node){|child|
printf("%d -> %d\n", node, child)
}
}

# 出力
#=> 2 -> 3
#=> 1 -> 2
#=> 1 -> 3
//}

@see TSort.tsort_each...

絞り込み条件を変える

Enumerable#sort_by {|item| ... } -> [object] (9205.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

...st[例][ruby]{
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 の実行回数は要素数と同じ...
...][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.count...

Array#sort_by! -> Enumerator (6231.0)

sort_by の破壊的バージョンです。

...sort_by の破壊的バージョンです。

ブロックを省略した場合は Enumerator を返します。

//emlist[例][ruby]{
fruits = %w{apple pear fig}
fruits.sort_by! { |word| word.length }
fruits # => ["fig", "pear", "apple"]
//}

@see Enumerable#sort_by...

Enumerable#chunk {|elt| ... } -> Enumerator (6107.0)

要素を前から順にブロックで評価し、その結果によって 要素をチャンクに分けた(グループ化した)要素を持つ Enumerator を返します。

...)要素を持つ
Enumerator を返します。

ブロックの評価値が同じ値が続くものを一つのチャンクとして
取り扱います。すなわち、ブロックの評価値が一つ前と
異なる所でチャンクが区切られます。

返り値の Enumerator は各チャ...
...//emlist[][ruby]{
enum.chunk {|elt| key }.each {|key, ary| do_something }
//}

例として、整数列を連続する奇数/偶数に分ける例を見てみます。
「n.even?」の値が切り替わるところで区切られているのがわかるでしょう。

//emlist[例][ruby]{
[3, 1, 4...
..., 1, 5, 9, 2, 6, 5, 3, 5].chunk {|n|
n.even?
}.each {|even, ary|
p [even, ary]
}
# => [false, [3, 1]]
# [true, [4]]
# [false, [1, 5, 9]]
# [true, [2, 6]]
# [false, [5, 3, 5]]
//}

このメソッドは各要素が既にソートされている場合に便利です。

以下の例で...

Enumerable#minmax_by -> Enumerator (3125.0)

Enumerable オブジェクトの各要素をブロックに渡して評価し、その結果を <=> で比較して 最小の要素と最大の要素を要素とするサイズ 2 の配列を返します。

...Enumerable オブジェクトの各要素をブロックに渡して評価し、その結果を <=> で比較して
最小の要素と最大の要素を要素とするサイズ 2 の配列を返します。

該当する要素が複数存在する場合、どの要素を返すかは不定です。...
...Enumerable#minmax と Enumerable#minmax_by の
違いは sort sort_by の違いと同じです。
詳細は Enumerable#sort_by を参照してください。

//emlist[例][ruby]{
a = %w(albatross dog horse)
a.minmax_by {|x| x.length } #=> ["dog", "albatross"]

[].minmax_by{} # => [nil, nil]...
...//}

ブロックを省略した場合は Enumerator を返します。

@see Enumerable#sort_by...
<< 1 2 3 > >>