- 1 名前: 【大吉】 mailto:sage [2009/01/01(木) 13:13:22 ]
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
【Ruby1.9 は不安定な開発版であり初心者には全く向きません】 【最新安定版の Ruby1.8.7 の使用をお勧めします】 ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。 1.9 の新機能の一部が利用可能なので初学者にお勧めです。 ※ただし十分安定しているとは言えないので プロダクション環境での利用にはお勧めしません。 関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問はRailsスレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 809 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:43:13 ]
- unko
- 810 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 21:52:42 ]
- 久しぶりにスレみたら>>747で吹いた。
男じゃん。と思って検索したら、こんなに可愛い子が女の子なわけないじゃないか
- 811 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 22:18:03 ]
- ググってしまったじゃないかww
- 812 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:26:45 ]
- 調べたらショタアイドル。ぐぐr必要なし
- 813 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:38:45 ]
- >>812
ぐぐってしまったじゃないか
- 814 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:45:15 ]
- 密林で注文したじゃないかw
- 815 名前:デフォルトの名無しさん [2009/01/26(月) 03:25:48 ]
- puts "文字"
puts "文字" puts "\n" srand require 'readline' def try_answer(prompt) while buf = Readline.readline(prompt, true) yield buf end end difficulty = ($*[0] || 1).to_i difficulty >= 1 or raise "#{difficulty}: Invalid difficulty direction" answer = rand(30 * difficulty + 1) judge_table = ["文字1","文字2","文字3"] try_answer("文字 > ") do |line| try = line.to_i result = try <=> answer puts "#{try}#{judge_table[result]}" break if result.zero? end プログラミングに興味が出て、いろいろさがしてたら 学校の過去の資料にこんなプログラムがありました。 これはどんなプログラムなんでしょうか? 一文一文の意味を教えていただけないでしょうか?よろしく おねがいします。
- 816 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 03:31:54 ]
- マルチは感心しないな
- 817 名前:デフォルトの名無しさん [2009/01/26(月) 03:32:21 ]
- ruby経由でwgetしつつ出力を表示しつつ、log.txtにもはきつつってことをやりたいのですが、上手くいきません。
画面には表示されますが、log.txtには何も書き込まれないという・・・ これは何がおかしいものなんでしょう Dir::chdir("/work") do system("wget example.com/ | tee log.txt") puts "read log.txt" puts File.read("log.txt") end
- 818 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 03:45:55 ]
- >>817
wget の出力は標準エラー出力に表示する tee は標準出力を取り込むことしかできないから、そもそも log.txt にはなにも書き込まれない wget localhost/ 2>&1 | tee log.txt Ruby あんま関係ないな
- 819 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 03:57:25 ]
- >>818
いけた!そっかwgetエラー出力だったのか・・・ 基本的なところをうたがうべきなのにすっかり忘れてた
- 820 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 04:00:33 ]
- これを意識してる人はまずいないよ
これはむしろ wget の欠陥だと思う
- 821 名前:デフォルトの名無しさん [2009/01/26(月) 05:47:44 ]
- Rubyでwebサーバーにアクセスしたとき
そのサイトにどんなファイルがあるか調べる方法はありますか?
- 822 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 06:03:15 ]
- index許可してあればリスト取り出せるけど
そうじゃなければ_
- 823 名前:デフォルトの名無しさん [2009/01/26(月) 09:16:34 ]
- robotでも作るつもりなのかな
- 824 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:26:53 ]
- >>820
wget の場合、標準出力は -O - で取ってきたものを出力するためにあるので (他のツールにパイプで直接流し込んだりとか)、そういう時にも一貫性を保てる ように、メッセージは標準エラー出力というのは理にかなっている。 メッセージをファイルに取りたいなら -o filename オプションを使うという手もあるが。 Ruby 関係ないな。
- 825 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:30:37 ]
- >>822
Ruby関係ないよね っていうか、HTMLやHTTPの勉強はしてもらってるのかね Rubyは魔法じゃねえぞ
- 826 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:39:31 ]
- Ruby関係ないということがわかるだけでも勉強としては前進だから、どんどん聞くだけ聞いてもらってもいいけどな
回答としても「ちげーよRuby関係ねーよ」と答えるだけでいいから楽だし Ruby内でwget使ってログ管理しようとして嵌るというのは順調なテンプレの範囲だと思う
- 827 名前:817 mailto:sage [2009/01/26(月) 12:24:18 ]
- そもそも、コマンドラインで
wget example.com/ | tee log.txt ってやってみてRubyの問題なのか、そうじゃないのか切り分けるべきでしたね なにあれ、解決したので助かりました。
- 828 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:40:37 ]
- Ruby 1.8でDir.globに複数のパターン(というか拡張子)を指定する方法は
ありませんでしょうか? (Dir.glob("**/*.css") + Dir.glob("**/*.html")).each do |file| : end のようにするしかない?
- 829 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:44:36 ]
- >>828
マニュアルに初心者お断りな感じできちんとわかりにくく書いてあんじゃんよ irb> Dir.glob("*") ["002.txt", "001.txt", "aaa.jpg", "bbb.jpg"] irb> Dir.glob("*.txt") ["002.txt", "001.txt"] irb> Dir.glob("*.txt\0*.jpg") ["002.txt", "001.txt", "aaa.jpg", "bbb.jpg"]
- 830 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:49:16 ]
- あれわかりにくいよね
素直に第一引数は配列受け取るようにすればよかったのに
- 831 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:37:35 ]
- ネットワーク上にあるExcelファイルを、
open-uriを使わずにnet/httpを使ってFileオブジェクトに格納する方法はあるでしょうか
- 832 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:52:09 ]
- >>831
bodyをそのままwriteするだけじゃダメなんだっけ?
- 833 名前:828 mailto:sage [2009/01/26(月) 15:52:40 ]
- >>829
本当だ! > パターンを "\0" で区切って 1 度に複数のパターンを指定することもできます。 > > p Dir.glob("f*\0b*") > => ["foo", "bar"] マニュアルみたつもりで見落としていました。 ありがとうございました。
- 834 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:57:50 ]
- >>832
bodyメソッドを実行すると「string contains null byte」とエラーが出てしまいます・・
- 835 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:05:54 ]
- めんどくへえ
イントラ限定のサーバかなんかで変な形式で送られてきてると予想 ヘッダはなんて言ってる?
- 836 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:10:15 ]
- レスポンスのヘッダでしょうか?
HTTP/1.1 200 OK Date: Mon, 26 Jan 2009 07:08:59 GMT Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b DAV/1.0.3 PHP/4.1.2 mod_perl/1.26 Last-Modified: Mon, 26 Jan 2009 00:11:23 GMT ETag: "3f1629-48000-497cffab" Accept-Ranges: bytes Content-Length: 294912 Content-Type: application/vnd.ms-excel こんな感じです
- 837 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:10:22 ]
- >>834
エラー箇所どこ? win32なのにバイナリモードでFile.openしてないとかいうオチはない?
- 838 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:14:04 ]
- >>837
さすがにそれはないと思いたい
- 839 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:23:08 ]
- >>837
orz おさわがせしました
- 840 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:29:17 ]
- >>838-839
初心者スレだしこんなミスもいいんじゃね?w 解決したならなによりだし(あのエラーを見たことは無いから自信はなかった) 騒がせたと懲りてるようなら、もう同じミスをしてもすぐ自分で気づくだろうから。
- 841 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:16:29 ]
- >>833
glob 構文だけを純粋に使って、*.{css,html} これでもいんじゃない。
- 842 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:29:56 ]
- >>833
・{ } コンマで区切られた文字列の組合せに展開します。 Dir.glob("**/*.{css,html}") do |file| puts file end 1.9だと配列で複数のパターンを渡せるようになった
- 843 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:39:27 ]
- あらら、かぶっちゃった
Dir[pattern] 形式だと1.8でも複数のパターンを指定できるよ Dir["**/*.html","**/*.css"].each do |file| puts file end
- 844 名前:828 mailto:sage [2009/01/26(月) 17:40:13 ]
- >>841-842
おお、便利だ! > { } コンマで区切られた文字列の組合せに展開します。 > 例えば、 foo{a,b,c}はfooa, foob, foocに展開されそれぞれに対してマッチ判定を行います。 > 括弧は入れ子にすることができます。例えば、 {foo,bar{foo,bar}} は > foo, barfoo, barbar のそれぞれにマッチします。 これですね。ありがとうございました。
- 845 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 20:20:17 ]
- >>843
完全に単なるエイリアスだと思い込んでた… glob構文めんどいから ["**/*.html","**/*.css"].inject([]){|r, i| r.concat Dir.glob(i) } こんなことしてたぜ…横から感謝
- 846 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:36:34 ]
- >>843
すげー。知らんかったわw globとは別なのね
- 847 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 23:20:28 ]
- >>843はオレも知らんかったので助かるんだけど、でもこれっておかしいよね。
ほんとはglob()と同じにすべきだよな。わざわざこんなふうにしている意味が分からん。
- 848 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 23:24:54 ]
- > ほんとはglob()と同じにすべきだよな
いまさらglobを変えるわけにいかないからせめて関数的メソッドDir[]は配列を受け取るようにしたという流れだと思った よく覚えてない
- 849 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 02:16:31 ]
- Dir[]とDir.globの違いはなんだろ(引数以外)
Dir[]全部列挙で、Dir.globはブロック渡すと逐一処理可能ってことか?
- 850 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 03:32:53 ]
- glob2とか作ってコンパチ目指したほうが。
なんか先に作った香具師の実装がアレでみんな迷惑してるの多いよね。cgiとかwww Content-Transfer-Encoding: base64とか付いてるとか?
- 851 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:23:26 ]
- >なんか先に作った香具師の実装がアレでみんな迷惑してるの多いよね。cgiとかw
あほか それは事実だが結果的にそうなった つまりそういう開発ポリシーだからそうなる必然 文句云うな
- 852 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:25:48 ]
- 日本語でおk
- 853 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:37:46 ]
- まぁ文句あるならもっと良いもの自分で作れってことだろ
そうやってMatzんは煽って北
- 854 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 11:11:36 ]
- 「開発ポリシー」で互換性を残したままにするから、
結果的に古いのが残っているってことでしょ
- 855 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 11:36:22 ]
- Rubyのコアライブラリ近辺って「1つ目」を作る人は大量にいるけど「2つ目」を作る人がいないんだ
全部自前でクラスやメソッド改造してしまうから Ruby1.2くらいで「このライブラリの存在は大きいので、では本格的なものを添付しましょう」という流れにならないのがRuby
- 856 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 13:16:40 ]
- cgi2chとかいうライブラリができたら楽しいなw
- 857 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:00:45 ]
- >>844
シェルのワイルドカード展開と一緒だよ。コマンドラインで多用しない? diff -c nagainamaenofairumeiwonandomoutitakunai.rb{.orig,}とか。
- 858 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:16:40 ]
- 確か次世代cgi.rbは、候補はあるけど決定的なものがないという理由で今のままなんだよね
- 859 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:24:55 ]
- cgi.rbをとりあえずな感じで添付したらそのまま数年維持されて癌になったという経験が尾を引いてるな
- 860 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:40:24 ]
- 互換性なんかどこに残ってんだよ
- 861 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:26:19 ]
- クラス CGI2ch::BBS
クラスメソッド CGI2ch::BBS.new([index]) 最新の板一覧取得用URL(複数候補可)を指定 インスタンスメソッド menu() 板一覧を取得 戻値 (cat, host(FQDN), board, name) のリスト 例: [('', 'www.2ch.net', '', '2chの入り口'), ('', 'info.2ch.net', 'guide', '2ch総合案内'), ..., ('ニュース', 'mamono.2ch.net', 'newsplus', 'ニュース速報+'), ..., ('PC等', 'pc11.2ch.net', 'unix', 'UNIX'), ... ('PC等', 'pc11.2ch.net', 'tech', 'プログラム技術'), ...] board(name) CGI2ch::Boardのインスタンスを生成
- 862 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:26:43 ]
- クラス CGI2ch::Board
クラスメソッド CGI2ch::Board.new(host, board) インスタンスメソッド subject() スレ一覧を取得 戻値 (key, title, res) のリスト(スレッドキー, タイトル, レス数) 例: [(1223709050, 'Rubyについて Part 33', 624), (1233033091, '愛国Ruby', 14), ...] thread(key) CGI2ch::Threadのインスタンスを生成
- 863 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:27:07 ]
- クラス CGI2ch::Thread
クラスメソッド CGI2ch::Thread.new(key) CGI2ch::Thread.create(name, email, body) 新スレを立ててインスタンスを生成 インスタンスメソッド read(key) write(name, email, body)
- 864 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:27:32 ]
- >>856
こんな感じで計画中だけど どう?
- 865 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:32:48 ]
- クラスメソッド
CGI2ch::Thread.new(board, key) CGI2ch::Thread.create(board, name, email, body) 新スレを立ててインスタンスを生成 boardが必要かな
- 866 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:42:18 ]
- >[(1223709050, 'Rubyについて Part 33', 624),
> (1233033091, '愛国Ruby', 14), ...] なにこれ
- 867 名前:710 mailto:sage [2009/01/27(火) 17:22:38 ]
- >>711
Railsのスレあったんですね。 気づきませんでした。 >>715 コメントありがとう。 結局原因がわからなかったので、rjsの中でhtml(<option></option>)を組み立てて、selectボックスに 対してreplace_htmlしたら回避できました。
- 868 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 17:29:56 ]
- >>864
計画倒れにならんようにがんがれ
- 869 名前:デフォルトの名無しさん [2009/01/27(火) 17:42:31 ]
- 2chの仕様なんて面倒だぞ。
専用ブラウザ開発者はマゾヒストとしか思えない。
- 870 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:00:13 ]
- >>864
スレ違い 2ch専用ブラウザの作り方 ttp://pc11.2ch.net/test/read.cgi/tech/1180406037/
- 871 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:14:12 ]
- >>862
愛国はかんべんw
- 872 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:17:05 ]
- >>871
はいはい面白いね至高のギャグだね
- 873 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:18:57 ]
- リファレンスマニュアルの使いにくさをどうにかしてください。
例えば、タイムアウトさせたい処理について調べたい場合、目次を見てもどこを見ていいのかさっぱりわかりません。
- 874 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:26:10 ]
- あ、オフィシャルサイトは検索休止中なんだっけ
timeoutで全文検索すると出てくるぞ
- 875 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:35:31 ]
- 「Ruby マニュアル」でぐぐると「ruby マニュアル 検索」が関連で出てくる現状はどうにかしたほうがよい
ttp://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=Ruby+%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB&num=10
- 876 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:08:35 ]
- ttp://doc.loveruby.net/refm/api/view/search?q=timeout
るりまはいつになったら公式化するのだろうか
- 877 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:22:00 ]
- >>876
MLいわく、静的HTMLを吐くツールが整備されてから
- 878 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:59:46 ]
- >>864
期待してます
- 879 名前:デフォルトの名無しさん [2009/01/28(水) 00:01:28 ]
- >>864
そんなことしてる暇あるんなら Rubyのリファレンスマニュアルを検索出来るようにしてくれさい
- 880 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 03:16:09 ]
- つ refe2
- 881 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 04:26:03 ]
- Rubyラブじゃ☆
- 882 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 05:49:46 ]
- >>879
さっさとchm版を使ってください
- 883 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 11:53:50 ]
- require "active_support" すると、
あらゆるオブジェクトに daemonize というメソッドが付いてくるんですが、 これって ActiveSupport が意図してやってるんでしょうかね? こうするメリットが良くわからないんですけれども。
- 884 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 12:03:24 ]
- Kernel や Object クラスのようなものに外部モジュールがメソッドを追加するというのは議論を呼ぶ設計なのは確か
ActiveSupport::Daemon.daemonize(obj) みたいなのでいいじゃんというのも指摘としては真っ当 そこで笑ってこっち見てる YAML 君もこっち来なさい
- 885 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:25:11 ]
- require "active_support"を使わなければ問題ない
- 886 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:45:39 ]
- String#each_line(sep) って、中で事前に巨大な配列作ってますか?
「ちょっとずつ」改行まで読み込んで返している動作ですか?
- 887 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:47:17 ]
- フラッグ型に保ち合ってきた。どっちかにブレイクするかもな。
- 888 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:50:12 ]
- 誤爆・・・
- 889 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:55:36 ]
- >>886
String#each_lineだから「読み込んで」は不適当な気がするが、 改行を探しては1行作ってyieldし、という挙動ではある。
- 890 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:59:42 ]
- str.split(/sep/).each do |line|
と str.scan(/\G#{sep}/){|line| なら、String#each_line は後者のイメージに近いと思われ 「str が 大きかったら each_line 1回のためだけにでっかい配列ができて胃が痛い」とか考える必要はないかと
- 891 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 14:06:07 ]
- やっぱ str.to_a.each_with_index do …はあんまりよくないのか
each_line_with_index って each がえにゅめらぼーウンタラの関連でどっかのバージョンで登場してたりする?
- 892 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 14:19:37 ]
- >>891
行番号が知りたいんだろうけど、each_lineは行ごとにループ呼ばれるから 自分でカウントアップすればいいんじゃない?
- 893 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:05:28 ]
- str.each_with_indexじゃダメなん?
- 894 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:21:04 ]
- String から呼ぶ Enumerable のメソッドって String をどう扱うかイマイチわからん
- 895 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:29:55 ]
- >>892
> 自分でカウントアップすればいいんじゃない? なにそのwith_indexの存在意義自体を土足で踏みにじる暴言
- 896 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:36:40 ]
- >>893,895
1.9のStringってeachがなくなってEnumerable非対応に なるんじゃなかったっけ? >>894 Enumerableのメソッドは全てeachに依存してるから、eachに準ずる。 直観的じゃないという話なら同意。
- 897 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:37:02 ]
- Rubyには放っておいても増える隠し定数のループカウンタとかないの
- 898 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:43:37 ]
- >放っておいても増える
そんなもんあったら問題だw
- 899 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 16:59:30 ]
- 1.8.7以降限定ならstr.each_line.with_indexでいいんじゃないの。
それより前だったらstr.each_with_indexでいいし。
- 900 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:02:23 ]
- each_with_index自体あんまり使わないから正直どうでも良い
- 901 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:06:36 ]
- 行志向のファイルを処理するスクリプトを書かない人には無用の長物だな
- 902 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:15:11 ]
- 全機能使って書いてるのはRubyを作ってるモルモンくらいでしょ
- 903 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:20:55 ]
- 昔どのメソッドが何するもんかは覚えても実際使わないと忘れて逝くのが人類です
- 904 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 18:31:47 ]
- >897-898
$.
- 906 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:19:41 ]
- よいまとめがあったんでシェア
Ruby1.9をこれから使う人のためのM17Nまとめ - 福島でRailsを使って仕事を頑張る計画 d.hatena.ne.jp/xibbar/20090126/1232946944 >>887 市況2?w
- 907 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 03:47:31 ]
- >>864
wktk
- 908 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 04:19:58 ]
- 1.9なら
str.each_line.with_index {|line, idx| ... } でFA。でかい配列を作ったりもしない。
- 909 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 10:32:14 ]
- 1.9知りたきゃ、これ見ろってことっすかね?
日本Rubyの会 公式Wiki - 1.9 Links jp.rubyist.net/?1.9+Links
|

|