1 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 17:31:07 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 ★注意★ Ruby 1.9.1 は初心者には時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に未対応であるためです。) なお 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 で勉強すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5 あたりを見てください。Ruby on Rails の質問は Webプログラミング板の 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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
548 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:23:46 ] >>547 PC/AT互換機使うのいますぐやめろ 元凶はそれだ ずっとNECなら日本語処理は完璧だったのだ
549 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:24:14 ] たいした苦労もしてないくせに
550 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:25:48 ] 悪いのはシフトJISだよ 日本語は悪くないよ EUCばんざーい
551 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:29:40 ] もはや現実逃避しかないのか・・・・・・w
552 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:35:07 ] 松江市さんは、rubyのドキュメントをしっかりしたものに してください。
553 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:40:25 ] >>533 >たとえば、サーバの実メモリを超えるようなデータを受け取ったときに処理できるのか?っていうのが疑問です。 添付ファイルデータなら、cgi.rb が一時ファイルに書き出してくれるので、実メモリを超えても大丈夫なんじゃないかなあ。 >また、なにか回避策が有るのでしたら、教えてください。 そのような場合は、cgi.rbを使わず、自前で$stdinからPOSTデータを読み出したほうがいいと思います。
554 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:58:15 ] >>548 78JISに拘泥して混乱を広げた元凶だということも知らずに呑気な馬鹿だ。
555 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:01:03 ] >>542 で必要最低限のことは全部触れられていそうだな 「本」をShift_JISとして見ると2バイト目が { なので、rubyのglob特殊文字になる。 というわけで、1.9では、2バイト目がrubyのglob特殊文字になる文字列をコマンドライン引数に与えると危ない、と。
556 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:04:04 ] 文字のエンコードが1種だけなら問題ないという話だろ
557 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:14:38 ] 勉強せずにスラスラ英語の文書読めるプログラマと、毎日英語と奮闘してるプログラマ どれだけ差が開くと思う? つまり日本がこの業界でアメリカに勝てないのは必然だ
558 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:20:16 ] 単なるrubyのバグの話でしょ
559 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:24:39 ] Rubyに限らず 引数の文字コードって どんなふうに判別するものなんだろう?
560 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:35:10 ] 引数の文字列自体はWindows-31Jにしてくれてるぞ
561 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:35:11 ] インターネット時代なんだしJISで統一すれば何もかもうまく逝ってけどな。 いまからならOSもメールもウェブもUTFで統一。
562 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:42:47 ] 文字コードとかごちゃごちゃし過ぎて分からんから指定できるところはとりあえず全てUTF-8にしてる。 特に問題が起きたことはない。
563 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:43:48 ] Win32で1.9.2プレビュー1をビルドしようとしたができんw clにminiprelude.cがないぞゴルァって言われる あるしちゃんとインクルードパスにも入ってるのに・・・
564 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 01:45:15 ] >>546 おお、ありがとうございます。 しかしこれからどうしたらいいのか全然アイディアが浮かばないんです。 どういう方向性でいけばいいのでしょうか。
565 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 02:06:27 ] >>564 わかんねーときは、わかる機能だけで作ってみるといいよ ゴールを遠くに設定しすぎてるから方向わからないんだよ、チェックポイント作りまくれ
566 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 05:59:16 ] いきなり無茶し過ぎなんだろ。小さい所から順々にステップアップしないと。
567 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 14:37:28 ] とあるフォルダの中のファイル名をずらーっとデータベースに入れたのは良いんですが、 この後ファイルがそのフォルダに追加されるごとにデータベースも更新したいです。 差分を取る方法を教えてください。
568 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 14:39:12 ] >> [1,2,3]-[1] => [2, 3] ファイルリスト程度ならオンメモリで余裕だろう
569 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 14:49:58 ] データベース自体は Ruby 以外を使うか、pstore に保存して cron とかで毎回読んでくれ
570 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 15:23:49 ] >>565 >>566 なるほど、そういう考えもありますね。 もうちょっとこつこつやるべきでした、ありがとうございます。
571 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:30:46 ] requireとかを使って外部のファイルを読み込むときですが main.rb class Main def initialize @foo = Array.new require 'sub.rb' end end main = Main.new [EOF] sub.rb @foo.concat ['hoge'] [EOF] みたいな場合にsub.rbからmain.rbの@fooにアクセスするにはどうしたらいいですか? よろしくお願いします
572 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:40:01 ] rquireは、対象コードをその位置に展開するメソッドではない。 中身が何でも気にしないなら eval File.read('sub.rb') とでも。
573 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:43:37 ] >>571 require はトップレベルにファイルを「追加」する ファイルを物理的に大きな1枚のファイルにする効果しかない(いや物理的って変だが) メソッドの「奥深く」で require しても、クラス定義の外で普通に require したのと何も変わらない それと、Ruby では、単純な行単位の切り取りを行うことはできない 現在のクラスにメソッド定義内で機能を追加するには、たとえば module の include を使う メソッド単位でしか追加できないので、そこは要領よく機能を分ける # sub.rb module Sub def add_hoge @foo.concat ['hoge'] end end # main.rb require 'sub.rb' class Main include Sub def initialize @foo = Array.new add_hoge end end p Main.new.instance_variable_get('@foo')
574 名前:571 mailto:sage [2009/10/03(土) 19:57:00 ] >>572 ,573 レスありがとうございます。言葉足らずですいません・・・ sub.rbにはclassも書いてあるのでその場に展開されるとエラーになります・・・ sub.rbに書いてあるクラスをsub.rb内で初期化してそのオブジェクトをmain.rbの 方に持ち帰りたいです(プラグインシステムみたいな感じ) グローバル変数を使えば出来るようですがあまりスマートじゃない感じですので もうちょっとすっきりする方法があればと・・・ よろしくお願いします
575 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:16:58 ] class Main def initialize(plugin_name) @foo = Array.new require plugin_name plugin_mod = Object.const_get(plugin_name.capitalize) extend plugin_mod do_something end end Main.new('plugin1') # plugin1.rb module Plugin1 def do_something @foo.concat('hoge') end end
576 名前:571 mailto:sage [2009/10/04(日) 15:48:48 ] >>575 extendで何とかなりました ありがとうございました
577 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 18:06:53 ] ちょっとした質問です。 items.each{ |x| x.destroy } というようなこう全部の要素にたいしてメソッドを呼ぶのを もっと簡単に書く方法があったような気がしたのですが、ご存知ありませんでしょうか? Ruby 1.8.7です。
578 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 18:09:46 ] &:destroy
579 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 18:11:34 ] >>578 それだ! items.each(&:destroy) でいけましたありがとうございました。
580 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 18:21:21 ] 1.8.6 では動かないから配布には注意な
581 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 21:11:40 ] 1.8.6 なんてもう使わない方がいいよ
582 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 22:36:26 ] >>581 なんで?
583 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 22:49:02 ] >>581 さんがサーバソフトウェアのリプレースを行ってくれるそうです
584 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 23:38:28 ] 感謝の印におっぱい見せろ
585 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 23:39:11 ] ごばくった。すまん
586 名前:デフォルトの名無しさん [2009/10/05(月) 23:44:01 ] >>584-585 wwwwww
587 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 06:33:24 ] お礼におっぱいを要求するような人間が使う言語、それがRuby
588 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 10:13:13 ] だがそれがいい
589 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 12:14:57 ] テンプレに追加しといて。 質問する人へ: 回答をいただいたら、ありがとうの言葉とともに、感謝の印としておっぱいを見せましょう。
590 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 08:45:57 ] 教祖もおっぱい成人だったか。
591 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 17:45:26 ] >>573 > require はトップレベルにファイルを「追加」する > ファイルを物理的に大きな1枚のファイルにする効果しかない(いや物理的って変だが) $ cat s.rb a=1 def f; 1; end $ cat c.rb require './s' p defined? a p defined? f $ ruby c.rb nil "method" $ ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] トップレベルでのローカル変数のスコープは require/load を越えないのでしょうか?
592 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:00:48 ] require や load した場合、ローカル変数だけは、ファイルごとにスコープがあります ローカル変数という概念を保護する制限だと思ってくだされ require ではなく Ruby スクリプトファイルとして読み込んで実行することで制限を乗り越えることができますが勧めません ファイルとモジュールの構造を変えることのほうを強く勧めます
593 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:09:36 ] 数字をキーに持つハッシュがあり その中で一番小さい数のキーの値を取り出したいのですが 単純に書くと以下になるんですが 他に何かこれだという方法はないでしょうか? h = {2 => "a", 5 => "b", 7 => "c"} p h[h.keys.sort[0]] => "a" これで問題があるわけではないですが 他に方法がある気がしたので質問させてもらいました
594 名前:デフォルトの名無しさん [2009/10/07(水) 18:12:38 ] hoge = moge.execute print hoge というとき、print hogeの hogeのところで moge.executeが参照され 実行されて得られた結果が、printされるという理解でいいですか?
595 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:15:16 ] >>593 素直に書くなら h[h.keys.min]
596 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:18:42 ] >>594 一行目の時点で >moge.executeが参照され実行されて得られた結果 がhogeに収まる 二行目はすでに収まってるhogeの中身を出力するだけ >>594 の日本語の部分をrubyで書くとこんな感じ? hoge = Proc.new { moge.execute } # moge.executeはまだ実行されない print hoge.call # Procを実行する(moge.executeが実行される)
597 名前:デフォルトの名無しさん [2009/10/07(水) 18:22:48 ] rows = dbh.do("INSERT INTO people (name,height) VALUES('Wanda',62.5),('Robert',75),('Phillip',71.5),('Sarah',68)") printf "%d rows were inserted\n", rows ruby/dbiの使い方ページにあるコードの抜粋なんですが、実行すると 4 rows were insertedと表示されます。 printf "%d " , rowsで、rowsから何かの数字を得ているようなのですが どういう動きをしているんでしょうか?
598 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:24:35 ] そのような目的に使うデータ構造としては、ヒープツリーや優先順位つきキューというものがあり、 Rubyには長らくこれが標準だというような実装がなかった。ので、自分で作るか、 既存のものをさがすかということになります。 以下、最近できたものなので、あるよ、という紹介しかできませんが、 depqという優先順位つきキューのgemがあります(あるはずです)。 ttp://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/39248?39066-39441
599 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:25:21 ] >>598 は>>593 あてね
600 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:25:45 ] >>596 考えていたことと逆でした。ありがとうございます。
601 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:35:10 ] >>597 ttp://www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFB4D8BFF4.html#printf ttp://www.ruby-lang.org/ja/man/html/sprintf_A5D5A5A9A1BCA5DEA5C3A5C8.html 個人的には Ruby ではないので嫌い to_s で問題の起こらない範囲で puts "#{rows} rows were inserted" と書くべき
602 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:40:22 ] >>601 String#%は?
603 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:42:04 ] >>602 異端審問される恐れがあるので 人前に晒すスクリプトでは使わないように
604 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:44:10 ] スタイルの押しつけうぜぇ
605 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:57:14 ] 個人的にString#%は蛇道
606 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:57:21 ] >>601 どもです。putsに書き換えて実行したところ同じように出ました。 どこから、4という数字を得ているのでしょうか? 上の式だとdbh以下を実行して 4つの要素をDBに登録していますよね。
607 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:57:53 ] >>604 Ruby使うの今すぐやめれ プログラミングスタイル強制要素が無数に散りばめられてるぞ
608 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:58:58 ] >>601 君にはPythonが向くんじゃないかな?性格的に。
609 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:02:23 ] >>608 sprintf は Ruby のものではないということを知らない?
610 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:04:06 ] >>606 そりゃそういうふうに作られてるからだろ do のマニュアル読め わざわざカウントして数値を返してるようなので初心者殺しではある
611 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:10:25 ] sprintf と pack/unpack は「Ruby らしい」糖衣実装が望まれていながら、 ダラダラと旧来の仕様を引きずってきたんだよな オタクが他の言語の知識を流用できて便利というただそれだけの理由で
612 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:14:00 ] >>611 あれは正規表現みたいなサブ言語だと思って諦めるのが吉かと思われます 確かに覚えにくいしなんとかしたほうがいいのは確かなんだけれど あれをまたまとめて別途組み立ててしまうとそれだけで結構な一覧表に
613 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:17:18 ] >>610 どもっす。doのマニュアルを探してきます。
614 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:18:04 ] printf類にrubyらしい実装なんて不要 他の言語と違う動作されたらそれこそ非難の的
615 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:24:33 ] prntf などの「メジャーな関数」をなくせという話ではないように読めるが
616 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:25:25 ] >>611 sprintfは別言語でそれやられて大迷惑 >>612 も言ってるけどいまさら別に覚えるのも嫌だから 今までと同じでいいよ・・・
617 名前:593 mailto:sage [2009/10/07(水) 19:27:45 ] >>595 minですね 探し切れてませんでした ありがとうございます >>598 なるほど、確かに求めてるのはヒープみたいなものでした 参考になりましたありがとうございます
618 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:32:02 ] 別にみんな自由に書けばいいじゃんw Obsoleteでもない限り機能として用意されてるんだから使えばいいし 「個人的に嫌い」な人が大半になればそれを使わないのがデファクトスタンダードになるだけだし
619 名前:591 mailto:sage [2009/10/07(水) 19:37:20 ] どうもありがとうございました >>592 うーん、もうちょっと明示的にスコープの話が書いてあると嬉しいような。 doc.okkez.net/static/187/method/Kernel/m/require.html doc.okkez.net/static/187/method/Kernel/m/load.html
620 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:56:18 ] ruby/dbiの公式に行きまして、classデータベースというページがあり メソッドの説明がしてありました。しかし、記述が少ししかなく。 こういう場合、ソースを読むんでしょうか? とりあえず、今は目的に必要なことだけをやっていこうと思います。
621 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:06:32 ] >>597 >rows = dbh.do("INSERT INTO people (name,height) >VALUES('Wanda',62.5),('Robert',75),('Phillip',71.5),('Sarah',68)") >printf "%d rows were inserted¥n", rows > >ruby/dbiの使い方ページにあるコードの抜粋なんですが、実行すると >4 rows were insertedと表示されます。 > >printf "%d " , rowsで、rowsから何かの数字を得ているようなのですが >どういう動きをしているんでしょうか? 1行目の rows = dbh.do("insert....") で、insertした件数が返されて rows に代入されているだけじゃないかな。 それを printf "%d ", rows で出力している。そんだけ。
622 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:29:41 ] >>620 ググったら公式じゃないけどこんなページがあったよ ttp://www.nslabs.jp/book2-dbi.rhtml
623 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:31:28 ] >>618 選択肢がないという話では
624 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:35:37 ] >>623 >>602-603 がそうはとても見えない
625 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:38:34 ] >>624 sprintf 使ったことある?
626 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:45:18 ] >>625 sprintf系まとめて異端だったの? >>603 は「(sprintfはまだしも)String#%は使うな」と言ってるんだと思ってたけど
627 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:51:44 ] C に由来する sprintf や pack/unpack の書式記号や利用法が Ruby らしくないというツッコミなんじゃ…
628 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:57:52 ] pack系はともかくsprint系に選択肢ないか?
629 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:02:21 ] >>603 はどう考えてもネタです
630 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:04:49 ] pack は map で直接書くというコードの動作的にはある意味わかりやすい代替手段が
631 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:27:58 ] しかしprintfを非難するとはいい度胸だ…これも平成ゆとりが増えたからなのか…
632 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:33:55 ] packにせよprintfにせよ、DSLは不思議と好き嫌いが分かれる気がする
633 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:34:36 ] >>631 「わかりにくい」ことは確か 初心忘れると老害と罵られるぞ
634 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:37:58 ] 反printf派に聞きたいんだけど 今より使いやすい(Rubyっぽい)printf構文ってどんなの?
635 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:39:17 ] とりあえず「詳しくはmanページ読んでね」というのは頂けないな 「正規表現はPerlと同じ物が多いので同じ場合はそちらを」は通用しないのに
636 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:40:14 ] >>633 packは使ったこともないし使う場面もないから構文すら知らない。 rubyでdef endしちゃうから今後も使うことはないだろう。
637 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:40:50 ] $と記号1つのグローバル変数(今となっては排除したいらしいが)も、 「Perlといっしょ」で通じなくなってきてるからな…
638 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:42:04 ] printfを知らないとなると、rubyしか触ったことないってことになるんだがな… webクリエータはたいてい適当だしそんなもんかw
639 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:43:00 ] >>636 バイナリファイルのヘッダパースとかどうやってやってるの?
640 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:43:31 ] >>636 irb1.8> p "ルビー" "\343\203\253\343\203\223\343\203\274" これ日本語に戻してー
641 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:44:32 ] >>638 お前puts使わないだろ
642 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:47:39 ] >>636 1.8でUnicodeEscapeSequence文字列が欲しいです先生
643 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:49:20 ] >>640 evalしろ
644 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:50:35 ] packはまあ・・・・使う時にリファレンスを見てやるしかないな 一方、青木氏はpackで壊れた >まったくpackの意味不明さときたら、 >「packのテンプレートがわからなくたって悔しくなんかないんだからな! バーカバーカ!」 >と幼児退行してみたくなるほどです。
645 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 21:52:37 ] >>643 こういう文字列をevalしろとな
646 名前:デフォルトの名無しさん [2009/10/07(水) 22:09:18 ] 青木氏って2chねら?
647 名前:デフォルトの名無しさん [2009/10/07(水) 22:27:52 ] ttp://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv このファイルが開けないのですが、どーすれば良いのでしょうか。
648 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:31:52 ] >>647 中身がタブ区切りのtsvだからです っていうかファイルの中身確認することくらいしようぜ
649 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:34:21 ] putsすると日本語でも表示されるよね sjis問題で文字化けはするけど
650 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:44:34 ] gets, puts ってのはもろにCだと思うんだが・・・
651 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:55:35 ] え・・・そうだと思うけどなんか違った・・?
652 名前:デフォルトの名無しさん [2009/10/07(水) 23:28:42 ] visualstudioみたいにボタンとかを貼り付けて入力フォームが作りたいんですが ああいうツールは無いんでしょうか?
653 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:32:42 ] CentOS上でruby1.8.7から1.9にアップデートしたいのですが、 Linuxの知識に乏しいためなかなか手が付けられません。 1.8.7のインストールはネットで調べつつなんとかソースコードから入れました。 一般的にはどのような手段でアップデートするのでしょうか?
654 名前:デフォルトの名無しさん [2009/10/07(水) 23:34:49 ] >>653 このスレ的には Debian にしろって言われると思うが。
655 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:34:51 ] > Linuxの知識に乏しいためなかなか手が付けられません。 じゃあ無理だ 諦めろ あとスレ違い
656 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:39:29 ] こういう奴は何しにこのスレに張り付いてるんだろうか
657 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:41:38 ] >>656 わりと適切だと思うが… Linux使ったことあるか?
658 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:43:45 ] make がなにやってるか理解しないといかんからなー それはこのスレの範囲を超える パッケージがないなら諦めれ
659 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:44:01 ] 貼りついてるw
660 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:44:15 ] もろスレ違いだと思うが。
661 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:44:52 ] Ruby公式ページにインストールガイドってリンクあるからみればいいよ
662 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:48:54 ] 教祖も使っているDebian最強 aptitude install ruby
663 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:49:18 ] Linux上で、しかもLinuxに関する知識がないのなら パッケージ管理システム(aptやyum)を使え、としか
664 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:54:26 ] >>662 1.9.1は存在しない(Sid除く)
665 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:58:14 ] この場合Linuxの知識は無関係だろ
666 名前:デフォルトの名無しさん [2009/10/08(木) 00:38:00 ] >>653 package application で source または archive の site を追加… 大抵は package gpg key は初期の物が使える筈… source package で compile install が出来るので在れば source を拾って来て install.
667 名前:デフォルトの名無しさん [2009/10/08(木) 00:50:15 ] ruby は python を使えれば 使う事ができますか python と ruby の関数で違う物は在るのでしょうか?
668 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 00:54:47 ] フィッシングタイムですか?
669 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 00:58:16 ] 邪魔しないでください >>668
670 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 01:05:11 ] >>667 全体的に大阪弁と東北弁ぐらいの違い
671 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 01:09:16 ] >>667 片方が使えるなら、もう片方もさほど苦労しない
672 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 01:53:24 ] gems.rubyforge.orgにgemでアクセスできなくない?
673 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 15:57:30 ] rubyが司る世界において 数字の1が生まれたら、それは数字クラスに所属していて 数字クラスのメソッドにない動きは出来ないってことですか?
674 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 16:10:39 ] Rubyには、オブジェクト(インスタンス)ごとにメソッドを定義できる、 特異メソッドという仕組みがあるので、たいていのクラスでは、イン スタンスごとに振る舞いを変えることができる。 しかしながら、数(Numericおよびサブクラス)にはこれが定義できない ように制限されている。 なお、数インスタンスが生まれた後に、数クラス自体にインスタンスメ ソッドを追加した場合、既存の数インスタンスでも使える。
675 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 16:21:33 ] irb> module One; def one; "one!"; end; end irb> 1.extend(One) TypeError: can't define singleton from (irb):2:in `extend_object' from (irb):2:in `extend' from (irb):2 from :0 irb> "1".extend(One).one "one!" ああ、わかりやすいエラーだ
676 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 16:26:28 ] >>673 一般的にはそう クラスに定義された動作(メソッド)のみが可能 ただし Ruby はオープンクラスだから、自分でクラスを拡張してメソッドを追加変更することができる ある人の String クラスにあるメソッドが、 別の人の String クラスにもあるとは限らない ある人の作った String のインスタンスが、別の人の作った String のインスタンスと全く同じ動作をする保証はない ただ、組み込みクラスのメソッドやライブラリ標準メソッドの上書きは自己責任なので気にしなくてよい それと整数クラスは>>674 の言うように例示にはちょっと不適
677 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 18:34:07 ] >>675 数字と数の違いか:-p
678 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 11:22:07 ] M1::C1::C2 というネストしたクラスがあります あるオブジェクトが M1 を「ネスト構造上含んで」いるかどうかを調べたいです 文字列として正規表現で比較するしかありませんか? obj.class.to_s =~ /\AM1::/
679 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 11:56:18 ] >>678 どんな場合にも動作するのは文字列としての比較 Module.nesting が使えることも多いが、特定条件で存在できないモジュールオブジェクトを指定できない
680 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 11:58:02 ] C → Java → Ruby と勉強してきましたが、次の言語は何がいいと思いますか? プログラミングは単なる趣味です。
681 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 11:58:52 ] Haskell
682 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 12:08:49 ] Lisp系列が足りないな
683 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 14:20:33 ] >>680 趣味というなら、マイナー言語でもいいよね。 Rubyとは真逆の、静的な関数言語がいいんじゃないかな。 OCamlかHaskellあたり。どちらも日本語での入門書があるし。
684 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 15:10:41 ] railsで、webアプリを作るのに 必要な知識ってなんですか? ruby rails 正規表現 html,xhtml,xml javascript mysqlなどRDMS apacheなどhttpサーバー こんなもんでしょうか?
685 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 15:15:04 ] >>684 他の言語でフレームワークべったりでないWebアプリケーションを作ることができれば問題なし なんじゃそりゃって感じだけど、まず間違いない あとRailsは板違いなので 【Ruby】Ruby on Rails Part8 pc11.2ch.net/test/read.cgi/php/1252842574/ こっち池
686 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 15:15:17 ] >>681-683 サンクス。 OCamlかHaskellあたりがお薦めなんですね。 了解しました。
687 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 15:20:43 ] >>685 どもっす。半年間精進してダメなら諦めます。
688 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 15:40:15 ] rspec 版の testrb コマンドってありませんか?
689 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 15:48:15 ] >>688 spec -fs -c spec/
690 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 15:54:54 ] >>689 1578 examples, 0 failures っひょー
691 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:28:14 ] >>690 おまえすごいな
692 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:32:09 ] 個人でもちょっと規模大きければこんなもんだろ
693 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:31:04 ] 俺レベルになるとワンライナーで大企業の基幹システムを作れるようになる
694 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:45:04 ] rspec 使ってるとテストはやたら増える
695 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:08:57 ] 無印のサイトはシェルやワンライナーで作ってる、なんて言ってたけど、 どーりで重いわけだと思ったよ
696 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:44:18 ] 初心者らしい話題 class CArray < Array end a = CArray.new b = CArray.new c = a + b p c.class #=> Array CArrayを返してほしい。 class CString < String end a = CString.new("aaa") b = CString.new("bbb") c = a + b p c.class #=> String CStringを返してほしい。
697 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 23:17:14 ] CArray というクラス名に吐いた class CArray < Array def +(v); self.class.new(super(v)); end end
698 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 23:58:05 ] a[0..1]みたいなのはちゃんと元のクラスにやってくれるんだよね
699 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 00:22:00 ] Array や String の(Cで記述した) + メソッドの定義の中で Array.new や String.new がハードコーディングされてるんだろうな 何らかのシステム的理由があるか、いまさら変更できないか、どっちかだろう まあ、バグっちゃバグかもしれん
700 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 01:13:02 ] >>698 むしろそっちのほうの挙動が不思議 Stringクラスの実装はCStringを知らないはずなのに、 どうしてCStringオブジェクトを返せるんだ?
701 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 01:28:37 ] インスタンスがあればクラスわかるから返せるにきまっとるわい
702 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 02:03:22 ] superのnew呼び出しでself.class.newってやるのきもくね?
703 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 02:10:19 ] 継承を前提としたクラスならってところ 組み込みでいえばIOとかNumericあたり というか、otherと絡むときにわざと基本クラス返してる気がするなぁ
704 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 03:07:56 ] レヴェルの低いインターネッツだな
705 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 03:22:09 ] 組み込みのくみこちゃんをdisるのはやめろ
706 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:06:39 ] >>703 あらゆるクラスは継承で動作可能「でなければならない」 継承したとたん動作しなくなるライブラリはプギャー
707 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:26:07 ] それぞれArrayを継承したFooとBarがあったとして foo + bar がどのクラスを返すべきかとか考えると >>703 の言うようにわざと基本クラスを返すのはありなんじゃないかと思う
708 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:31:28 ] >>707 > foo + bar がどのクラスを返すべきか 変換っぽいメソッドでない限り、通常はレシーバのクラスを返すべき つまり、foo のクラスを返すべき
709 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:54:09 ] このパッチをあててリビルドすればOK --- a/array.c +++ b/array.c @@ -2657,12 +2657,14 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary) VALUE rb_ary_plus(VALUE x, VALUE y) { + VALUE klass; VALUE z; long len; y = to_ary(y); len = RARRAY_LEN(x) + RARRAY_LEN(y); - z = rb_ary_new2(len); + klass = rb_obj_class(x); + z = ary_new(klass, len); MEMCPY(RARRAY_PTR(z), RARRAY_PTR(x), VALUE, RARRAY_LEN(x));
710 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 08:07:52 ] 本当にそのほうがいいと思うなら、 redmine.ruby-lang.orgにfeature request投げとけば。 個人的には、両方のクラスが同じときだけにすべきじゃないかと思うが。 あと2chに初出のコードは著作権的に取り込むのは危険なんじゃなかったっけ。
711 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 08:22:54 ] >>710 危険というか取り込み不可能 というか別にそんなことを意図したコードでもあるまい お前空気読めないと周りから言われるか全く何も言われないかどっちかだろ
712 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 08:50:19 ] 無理矢理ねじ込んだ感バリバリの3行目に ドカタのストレスを見た。
713 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 08:56:26 ] 言われるか言われないかのどっちかワロタ
714 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 14:27:56 ] 質問です;; mvcモデルをつくりたいのですが、下記エラーが出て削除機能が使えません undefined method `destroy' destroyが使えない?? newもfindも使えるのに・・ 解決法知ってる方いたら教えてください
715 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 14:40:02 ] MVCと直接関係ない質問に見えるけど何の話?
716 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 14:45:48 ] 要するにdestroyメソッドを使う方法がわからないです
717 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 14:47:12 ] destroyメソッドってなに?
718 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 14:49:12 ] すいませんここはrailsは対象外なんですかね・・ 他当たってみます
719 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 14:51:30 ] >>718 RailsならRailsと言え。 MVCってのはRails固有の概念ではない。 あと、 【Ruby】Ruby on Rails Part8 pc11.2ch.net/test/read.cgi/php/1252842574/
720 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 16:33:54 ] undefined method `destroy'の後が重要だったりするんだよな
721 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 17:12:32 ] >>720 この場合はいいえ
722 名前:714 mailto:sage [2009/10/11(日) 01:00:33 ] >>721 何か知ってる事あったら教えてもらえますか?
723 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 01:07:07 ] うざ
724 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 11:59:17 ] PStore.dump してファイルに保存済みのデータがあったとし a = nil PStore.new(...).transaction do |c| a = c[:data] # Array や Hash がネストしたデータ(shallow copy では完全にコピーできない) end x = a[...][...].XXX[...] というように PStore.transaction の外で読み込んだデータ を使っても問題ないものなのでしょうか。 内部的には Marshal.load しているということなので、問題 ないような気もするのですが、ドキュメントの記述を見ると そういう使い方していないようなかんじなので…。
725 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 12:02:25 ] Marshal.dump は唯一、標準ライブラリで深いコピーを行う
726 名前:724 [2009/10/11(日) 12:16:24 ] なるほど >>725 さん PStore が Marshal 上に実装されているという前提が変わらない限りは PStore#transaction の外にデータを持ち出しても問題ないわけですか これまで無駄に transaction の内部にコード入れていたので書き直そう…。
727 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 12:20:45 ] >>724 PStore#transactionは、 * 同じデータファイルに対する他のPStoreアクセスを禁止している (読んでる間に書き換えられないように) * ブロック処理がabortされなければ、変更の再ダンプを行う。 という感じの仕事をしている。 中で読んだデータはそのままメモリにある。ブロックを出たあと、 誰かがデータファイルを書き換えたとき、それとメモリが一致しな いということを認識した上でなら問題ない。
728 名前:724 mailto:sage [2009/10/11(日) 12:43:24 ] まさにそのあたりが気になっていた(transaction 抜けたら参照している データがメモリ上から消えちゃう可能性があるのかなあ、とか)のです、 明快な説明どうもありがとうございました >>727 さん
729 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 14:19:20 ] きちんとトランザクションって書いてあるだろ トランザクション抜けたからって取得データ本体が消えるなんてことはそもそも …実装としてありそうな気もするな トランザクション有効中に明示的に複製してクダサーイというのはアリではある んで、PStore#transaction は普通は File.open のようにブロック範囲を限定して使う データを取得または保存する瞬間にだけ、トランザクションに入る 何らかの理由で複数回アクセスしたいという場合は、PStore.new のオブジェクト自身を変数で保持する なお、 PStore は、実装の都合上「ファイル全体を最初から最後まで必ず読み込む」ので注意 変更部分に対応したファイルの一部分だけを書き換えるとか、そういう細やかな小細工は通用しない データの大きさと更新頻度によっては複数に分けたほうが負荷的にお得
730 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 14:36:09 ] WinでAutoHotKeyの代わりに使える機能を完備してあるライブラリってない?
731 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 16:56:05 ] 繰り返し処理で正規表現を使う場合 a.each do |b| print "match" if c =~ /hoge/ end よりも reg = Regexp.new("/hoge") a.each do |b| print "match" if c =~ reg end の方がいいでしょうか?
732 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 17:05:15 ] そういうのは正規表現の中に変数を含む場合です
733 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 17:12:35 ] 変数を #{} などで含まない「固定」の正規表現は1回しか生成されない 1.upto(10000).each do /h/ =~ "hoge" end でも re = /h/ 1.upto(10000).each do re =~ "hoge" end でも、Regexp のインスタンス生成は1回だけ つまり、処理速度や負荷的には実質どちらでも構わないし、 厳密にはブロックの外の変数を参照するコストのぶんだけ後者が遅い
734 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 17:34:33 ] >>732-733 なるほど、ありがとうございます
735 名前:724 mailto:sage [2009/10/11(日) 22:15:19 ] RDBを使うほどでもないけどちょっと中間データをファイルとして永続化して おきたい(けどCSVファイルなんかは表現力が弱いので嫌な)ときに、素で Marshal.dump/load するより楽なので PStore を使っていたのですが PStore#transaction でデータ処理全体をブロックする必要があるのかないの か「実装としてありそうな気もする」ので気になっていたので、たいへん勉強 になりました、どうもありがとうございます >>729 さん
736 名前:デフォルトの名無しさん [2009/10/12(月) 19:03:31 ] rand()の範囲を指定したいのですが 10から20の間の数をランダムに発生させたいというばあい rand(10-20)とか直接与えることは出来ますか?
737 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 19:13:37 ] 0から10の範囲の乱数を発生させて10を加える。
738 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 19:18:20 ] >>737 が正解
739 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 19:21:25 ] 俺俺ライブラリに class Range def rand Kernel.rand(last-first+1)+first end end ってやっといて (10..20).rand するとか 標準じゃ無理
740 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 19:29:25 ] (10..20).to_a.sort_by{rand}.first
741 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 19:39:58 ] >>740 短いのですがどうもちゃんと動作しないようです。 (1..2**30).to_a.sort_by{rand}.first としましたが、結果がかえってこないのであきらめました。
742 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:07:39 ] >>741 そりゃ単に重すぎるだけだ 要素数が2**30の配列を作ってるんだから そこまで大きな数を扱うのなら、小手先なしでrandした方がいいよ
743 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:08:59 ] だから>>737 以外は実用妥当な乱数にならねえって
744 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:09:56 ] スレタイ100回読んで半年ROMっとけ
745 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:15:49 ] 乱数発生部は組み込みに任すのが完全に正しい姿だな 累乗とか使って結果的に偏らせるのも成長段階には必要という説もあるが
746 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:17:49 ] 最近/.並にゴミで埋まるようになってきたなここ。
747 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:23:23 ] >>746 2chも大差ないだろ
748 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:24:39 ] >>746 斬新な自己紹介ですね
749 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:40:35 ] こういうありきたりなループの終了条件に !=を使うのは普通ですか? count = 1 end_count = 10 while count != end_count puts count count = count + 1 end
750 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:44:09 ] へん
751 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:48:03 ] (1...10).each {|i| puts i} じゃだめなん?
752 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:50:22 ] count が増えるとは限らないのだろ loop do break if count == end_count ... end せめて break して欲しい
753 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 21:08:18 ] >>752 何でbreakの方を推すの? 横から見てもいまいちわからん 普通ここは、読みやすいuntilを推す流れじゃないかと思うんだけど
754 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 21:15:49 ] あまり使わないんですね。 気をつけます。ありがとうございます。
755 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 21:18:26 ] あまり使わないのか? 場合によりけりで特に使う使わないを気にする記述でもないと思うんだけど
756 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 21:21:14 ] >>740 単に非効率なやり方だろ 他人に教えるようなものじゃない
757 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 22:29:55 ] C++のSTLのイテレータに慣れてるとそう書きたくなるな。
758 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 22:33:38 ] 読みやすい until などというものは存在しない と思う