[#47501] Hash の制約について( Ruby1.8) — 上田佳寛 <ueda@...>
皆様はじめまして
8 messages
2010/10/01
[#47528] Ruby1.9.1 p430へのRDE インストールについて — eiichi_maekawa@...
5 messages
2010/10/07
[#47529] ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない — jugyo kohno <kkohno@...>
jugyo と申します
11 messages
2010/10/08
[#47562] Re: ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない
— "Y. NOBUOKA" <nobuoka@...>
2010/10/15
信岡です。
[#47563] SketchUpのRubyでwin32oleをrequireする方法について(質問)
— "yahata hisashi" <yahatah@...>
2010/10/16
Google SketchUpのRubyでwin32oleをrequireする方法について教えていただきたく
[#47564] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— Masaki Suketa <masaki.suketa@...>
2010/10/16
助田です。
[#47566] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— "yahata hisashi" <yahatah@...>
2010/10/16
助田 雅紀様
[#47567] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— Masaki Suketa <masaki.suketa@...>
2010/10/16
助田です。
[#47537] Excel用のxmlssファイルを作成するライブラリ exlap_c — "YOSHIIZUMI" <t-yoshiizumi@...>
吉泉といいます。
11 messages
2010/10/10
[#47575] Re: Excel用のxmlssファイルを作成するライブラリ exlap_c
— 染谷 康一 <kouichi_someya@...>
2010/10/18
吉泉さん
[#47547] 正規表現で困っています — 成田恭一[NWH] <ntnarita_prn@...>
Ruby初心者の成田と申します。
7 messages
2010/10/13
[#47578] Ruby1.9.2のRDocで定義が出力されないことがある — KANAI-Takashi <kanai@...>
こんにちは。
6 messages
2010/10/18
[ruby-list:47544] Re: ruby 1.9.2でArrayのsortの結果が期待通りにならない
From:
Nobuhiro IMAI <nov@...>
Date:
2010-10-11 17:42:42 UTC
List:
ruby-list #47544
いまいです。
From: sesame <sesame_at_purple.halfmoon.jp>
Date: Tue, 12 Oct 2010 02:10:17 +0900
> しかし、pメソッドを実行するタイミングによって、
> [[2, 8], [6, 7], [9, 3]]
> という結果が返ってきます。
>
> このような結果になる理由がわからないのですが、
> ご教示いただけないでしょうか。
代入やメソッド呼び出しと、ブロック(特にdo~end)の結合強度の関係ですね。
ブロックを{}に変えて書きますが、それぞれ、
> *ソース
> puts "#-------------------------------------"
> p [[9,3],[2,8],[6,7]].sort do |i,j|
> i[1] <=> j[1]
> end
p([[9,3],[2,8],[6,7]].sort){...}
> puts "#-------------------------------------"
> p a = [[9,3],[2,8],[6,7]].sort do |i,j|
> i[1] <=> j[1]
> end
> p a
p(a = [[9,3],[2,8],[6,7]].sort){...}
> puts "#-------------------------------------"
> a = [[9,3],[2,8],[6,7]].sort do |i,j|
> i[1] <=> j[1]
> end
> p a
a = [[9,3],[2,8],[6,7]].sort{...}
p a
と解釈されていて、上の二つではブロックなしの Array#sort の結果が p に渡
され、ブロックは無視されています。Array#sort は要素が配列だとその最初の
要素から比較するので、[[2, 8], [6, 7], [9, 3]] となっています。
ちなみに、この様な場合は sort_by を使うのがよいと思います。
>> [[9,3],[2,8],[6,7]].sort_by{|a| a[1]}
=> [[9, 3], [6, 7], [2, 8]]
--
Nobuhiro IMAI <nov@yo.rim.or.jp>
Key fingerprint = E57F 2482 4074 13BC 3B9A 165B C689 5B16 A620 4657