09/01/28 13:59:42
str.split(/sep/).each do |line|
と
str.scan(/\G#{sep}/){|line|
なら、String#each_line は後者のイメージに近いと思われ
「str が 大きかったら each_line 1回のためだけにでっかい配列ができて胃が痛い」とか考える必要はないかと
891:デフォルトの名無しさん
09/01/28 14:06:07
やっぱ str.to_a.each_with_index do …はあんまりよくないのか
each_line_with_index って each がえにゅめらぼーウンタラの関連でどっかのバージョンで登場してたりする?
892:デフォルトの名無しさん
09/01/28 14:19:37
>>891
行番号が知りたいんだろうけど、each_lineは行ごとにループ呼ばれるから
自分でカウントアップすればいいんじゃない?
893:デフォルトの名無しさん
09/01/28 15:05:28
str.each_with_indexじゃダメなん?
894:デフォルトの名無しさん
09/01/28 15:21:04
String から呼ぶ Enumerable のメソッドって String をどう扱うかイマイチわからん
895:デフォルトの名無しさん
09/01/28 15:29:55
>>892
> 自分でカウントアップすればいいんじゃない?
なにそのwith_indexの存在意義自体を土足で踏みにじる暴言
896:デフォルトの名無しさん
09/01/28 15:36:40
>>893,895
1.9のStringってeachがなくなってEnumerable非対応に
なるんじゃなかったっけ?
>>894
Enumerableのメソッドは全てeachに依存してるから、eachに準ずる。
直観的じゃないという話なら同意。
897:デフォルトの名無しさん
09/01/28 15:37:02
Rubyには放っておいても増える隠し定数のループカウンタとかないの
898:デフォルトの名無しさん
09/01/28 15:43:37
>放っておいても増える
そんなもんあったら問題だw
899:デフォルトの名無しさん
09/01/28 16:59:30
1.8.7以降限定ならstr.each_line.with_indexでいいんじゃないの。
それより前だったらstr.each_with_indexでいいし。
900:デフォルトの名無しさん
09/01/28 17:02:23
each_with_index自体あんまり使わないから正直どうでも良い
901:デフォルトの名無しさん
09/01/28 17:06:36
行志向のファイルを処理するスクリプトを書かない人には無用の長物だな
902:デフォルトの名無しさん
09/01/28 17:15:11
全機能使って書いてるのはRubyを作ってるモルモンくらいでしょ
903:デフォルトの名無しさん
09/01/28 17:20:55
昔どのメソッドが何するもんかは覚えても実際使わないと忘れて逝くのが人類です
904:デフォルトの名無しさん
09/01/28 17:55:08
>>894
1.9でString#eachがなくなって Enumerableじゃなくなったのはそれが理由だよね
バイト単位なのか、文字単位なのか、行単位なのか一般的には決まらないので
自分で明示して each_byte か each_char か each_line を使えと
でも自分スクリプトで
Stringが行単位のEnumerableなのを利用して
いきなり文字列の sort とかuniqとかしてたんだよね
で、1.8.6以前と1.9以降の両方で動くようにスクリプトの頭で
unless String.method_defined?(:each)
class String
alias each each_line
include Enumerable
end
end
905:デフォルトの名無しさん
09/01/28 18:31:47
>897-898
$.
906:デフォルトの名無しさん
09/01/28 23:19:41
よいまとめがあったんでシェア
Ruby1.9をこれから使う人のためのM17Nまとめ - 福島でRailsを使って仕事を頑張る計画
URLリンク(d.hatena.ne.jp)
>>887
市況2?w
907:デフォルトの名無しさん
09/01/29 03:47:31
>>864
wktk
908:デフォルトの名無しさん
09/01/29 04:19:58
1.9なら
str.each_line.with_index {|line, idx| ... }
でFA。でかい配列を作ったりもしない。
909:デフォルトの名無しさん
09/01/29 10:32:14
1.9知りたきゃ、これ見ろってことっすかね?
日本Rubyの会 公式Wiki - 1.9 Links
URLリンク(jp.rubyist.net)
910:デフォルトの名無しさん
09/01/29 11:02:09
>>909
リファレンスマニュアル見ろよ