1 名前:デフォルトの名無しさん [2008/01/16(水) 17:41:27 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 関連スレやURLは>>2-7 あたりを見てください。Ruby on Railsの質問はWebProg板の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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
528 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 05:29:46 ] 今時、telnetといって文字通り捉えるのははずかしいぞ
529 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 06:18:09 ] 今時telnetがデフォで入ってるのはWindowsとOSXくらいのもんだろw
530 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 11:46:24 ] 普通は「shellの利用が禁止されてる」っつー罠
531 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:17:56 ] >>529 デーモンはともかく、クライアントとしてのtelnetはPOPやHTTPみたいな プロトコルを手で喋る(?)ときに重宝するから入っていそうだが。 とはいえ、デフォでは入ってないかもな。
532 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:37:16 ] 本の感想サイトから書名とレビューを抜き出して表示するプログラムを作るとします。 表示は「とにかく一覧として表示されればいい(新着が存在することを明示しなくていい)」とします。 昨日抽出したとある本のデータのハッシュは以下の通りでした。PStoreで保存します。 book = {'title'=>書籍名, '著者'=>著者名, 'review'=>['面白かった。','まあまあだと思った。']} で、今日アクセスしてHTMLをスキャンした結果が today = {'title'=>書籍名, '著者'=>著者名, 'review'=>['面白かった。','まあまあだと思った。']} という、昨日と中身同じな未更新の内容でした。相手のHTMLには最終更新日などの情報はありません。 1) ハッシュの上書きの特徴を利用し、強制的にbook.update(today)してbookを今日の結果として表示させる 2) reviewの中身を比較して違いがあった場合のみbook.update(today)とかしてbookを表示する 2通りの手段があると思うんですが、2ってもしかして比較に時間かかったりしますか。 プログラム的には「差分が存在した場合のみ変数を更新」というのがいいような気はするんですが。 サイトから抜き出した要素がある日突然減ってることはありません(今日はtitleが無いとか)。
533 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:51:42 ] >>532 データの量にもよるけど、単純な比較に致命的な時間がかかる事はあまり無いと思う。 その前提なら変化があるのは review の項目だけだろうから、これだけでいいのでは? today['review'] == yesterday['review']
534 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:56:59 ] >>532 いきなり全体に上書きしてもデータ上は問題ないのなら1でいいんでないかい つまり「過去ログは不要で今日のサイトの状況のみをリアルに反映する」のが目的ならね ある日のレビューが 'review'=>['面白かった。','まあまあだと思った。','↑厨の連投自演乙wwww'] になってて、翌日に 'review'=>['面白かった。','まあまあだと思った。'] に戻ってた場合とかは、1の方法だとレビュー削除を検知も保存もできないけど、2ならやろうと思えばできる
535 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:02:23 ] Hash#updateは機械的にキー捜して値を更新してるだけだよね? >>533 のように変化しうるキーの値だけ更新するのが本当なんだろうけど、 100項目くらいなら全部をupdateしちゃって問題ないと思う
536 名前:デフォルトの名無しさん [2008/02/03(日) 19:45:26 ] Rakefileでtaskが失敗したことを表現するにはどうしたらよいでしょうか? test taskが成功したときのみinstall taskを実行して欲しいです exitで終了させる方法しか思いつきません task :default => [:install] task :test => OUT do |t| %x{ #{Dir.pwd + '/' + t.preqs[0]} } if $? != 0 print "sippai\n" #exit(1) end end task :install => :test do |t| print "install...\n" end
537 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 19:52:19 ] raise でメッセージつけるとか
538 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:26:55 ] 中途半端に自作のデータ格納クラス作るよりも、 適当なでかいハッシュにキーと値のペアで格納したほうがマシだよね?
539 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:31:22 ] Structってのもあるよ。
540 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:36:25 ] > Struct > 構造体クラス。 > Struct.new はこのクラスのサブクラスを新たに生成します。 > 個々の構造体はサブクラスから new を使って生成します。 > 個々の構造体サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。 …ハッシュでいいや
541 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:37:03 ] 俺はモジュール1〜2つ作って、その中にクラス作りまくる派。 ・後でメソッド持たせたくなった時、楽 ・項目名を間違っていた場合すぐ判る ・その一連のデータにどんな項目があるかが一目瞭然
542 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:49:19 ] データクラスを設定するためだけにインスタンス変数をいちいち30こくらい作るの面倒なので中身はただのHashです Hashでkeyを指定するのとaccessorでインスタンス変数にアクセスするのってたいして変わらん気がする もっと複雑怪奇なデータ構造なら破綻するのかもしれないけど あとただのデータの癖にメソッドたくさん持ってるのは気持ち悪い おまえらは素直にアプリケーションクラスにいじられてればいいんだよ
543 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:02:19 ] ネットからデータをげっとぉするメソッド内で、アクセス間隔intervalを設定したいです。 # その1 ----------------------------- interval = nil interval = 10 if 適当な条件 … sleep interval if interval # その2 ----------------------------- if 適当な条件 then interval = 10 else interval = nil end … sleep interval if interval # その3 ----------------------------- interval = 10 if 適当な条件 … sleep interval if defined?(interval) # ----------------------------------- どれがいいかな? intervalはここでしか使わないんですが。 今までは何の疑いもなくインスタンス変数を消費して sleep @interval if @interval とか書いてたんですがこれを機にインスタンス変数の乱用減らそうかと
544 名前:デフォルトの名無しさん [2008/02/04(月) 02:04:31 ] "あいうえお"[2]で"う"が出ないのって、アホなの?
545 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:30:29 ] その問いへの答えは "abcde"[2]が"a"がでないのをどう受け止めるかによって変わりそう。
546 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 04:07:12 ] >>543 こーゆーのは? interval = ( 適当な条件 ? 10 : 0 ) : sleep(interval) ローカル変数で間に合うくらい近い場所ならこーするけど sleep(10) if 適当な条件
547 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 09:06:08 ] >>545 卑近実際の使い勝手が悪いのには反論の余地はないな いちいちアスキー文字に変換されないのは便利なこともあるんだろうが >>543 ローカル変数の初期値のスタンスに関する問題だということでいいよな その2かそれに類するものであるべきだとは思う その1のようにnilを指定したあとで別オブジェクトに挿げ替えるというのは気持ち悪い あと、その3は常にtrueになるような気がしてならんのだが
548 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:01:44 ] 驚き最小の原理的に望ましくないし、使い勝手も悪いっつーたら何の利点があるんだろ
549 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:18:20 ] 一応、Stringはバイト列であるという考え方らしい だったらString.eachはString.each_lineではなくString.each_byteと同じものにしとけバーカバーカ >>544 $KCODE='e' puts 'あいうえお'[4,2] "う"
550 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:31:02 ] >>548 驚き最小の原理というのは(Matzの)驚きが最小って意味。 Cでも"abcdef"[0]は"a"じゃないじゃん。ブロック変数がローカルでないのも Cの int i = 42; for (i = 0; i < 100; i++) { process(); } i => 99 って動作を踏まえたものだし、それなりに根拠はある。 1.9だと両方とも変わったんだけど、?aという記法は残して欲しかったな。
551 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:46:47 ] >>550 記法自体は残ってるよ。挙動を変えないでほしかった、という意味かな。
552 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:52:31 ] Perlでは文字列の4番目って何になるんだっけ、と思ったが どう書いていいのか全く思いつかなくなっててとてもショック そんなにまじめに勉強してたわけじゃないけどさー いかん、これでは「Rubyしか使えない可哀想な人」になってしまう
553 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:00:27 ] >>551 Yes。Emacsの記法だっけか。 >>552 RubyはPerlの互換だから、RubyのほかにPerlだけ使えてもあんまり意味ないけど 。 そういや最近話題のarcでは("abcdef" 0)が#\aなんだよな。
554 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:30:03 ] /home/me/ruby というディレクトリに main.rb sub.rb uri.rb という3つのファイルがあって、main.rbからsub.rbとuri.rbを読み込んで中のクラスやモジュールを利用したいです。 一番好ましい書き方は何ですか? main.rbの実行時のカレントディレクトリは/home/me/rubyだけとは限りません。
555 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:55:42 ] $: << File.dirname(__FILE__)
556 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:57:08 ] >>542 30ってヤケにでかい塊だな。
557 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:02:59 ] >>555 __FILE__はフルパスとは限らないので $: << File.expand_path("..", __FILE__) のほうがいい。
558 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:17:24 ] いやこれは意図的な罠だろ > cat uri.rb class URI MSG="このファイルは#{__FILE__}です" end > cat main.rb $LOAD_PATH << File.expand_path("..", __FILE__) require 'uri' puts URI::MSG > ruby ./main.rb main.rb:3: uninitialized constant URI::MSG (NameError) 横着せずに require をフルパスつきで読み込んだほうが確実だと思う
559 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:28:41 ] q = abcd q.length × 1.5 =>8 てしたいのですが、うまいことぐぐれないので助けてください。
560 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:35:40 ] >>559 ぐぐる以前に体系的に一通りRubyの基礎を学ぶといいぞ
561 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:43:43 ] 何がしたいのかもっと具体的に。
562 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:46:08 ] >>558 $LOAD_PATH.unshift(File.expand_path("..", __FILE__))
563 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:47:22 ] >>561 いや、意味は不明だがとりあえずは比較だろ q = 'abcd' if (q.length * 1.5 >= 8.0) then puts 'とりあえず8かそれ以上です(何が?)' else puts 'とりあえず8未満です(何が?)' end
564 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:49:44 ] >>562 それだと添付ライブラリの uri を require 'uri' で読めなくならないか 自作ファイルのほうを特別扱いするのが妥当かと思われ
565 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:52:57 ] ああ、-rubygemsなんか使ってたりで、すでに標準ライブラリのuri.rb読んでるとダメなのか パスが変わってないと読み込んでくれないってことか
566 名前:デフォルトの名無しさん [2008/02/04(月) 16:30:37 ] これだから、Rubyは・・・
567 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:32:09 ] 言語仕様自体の是非は隔離スレでやれと
568 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:42:17 ] 普段数十行の処理用にperl使ってる程度ですが、そういう人間にもruby使う意味ってありますか?
569 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:44:49 ] Perlでの記述に速度以外の不満があるのなら とらえず、既存の仕事をRubyで置き換える意味はないよ
570 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:45:26 ] Rubyの字面が好きなら乗り換える価値はあるかもな。 自分も1000行行った事ないけど字面が好きだから細々と使ってるよ。 正直細かい機能はほとんどしらねぇw
571 名前:568 mailto:sage [2008/02/04(月) 16:51:22 ] いえ、perlに不満があるわけではないです。 単にruby流行ってるみたいなんで興味持った、っていう程度です。スンマセン でもちょっとかじってみようかな。perlからの乗り換えも結構多いようですね
572 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:02:29 ] Perlの人が飯を賭けずに家で遊んでみるぶんには大変魅力的な言語でございますよ 一通り使ってみた後にはPerlでのプログラミングの筋もよくなってるという矯正効果つき
573 名前:559 mailto:sage [2008/02/04(月) 19:39:05 ] 算数ができてませんでした。 4文字を入れて出力したいのは6ってゆー数字です。
574 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:00:09 ] >>573 体系的に一通りRubyの基礎を学ぶといいぞ
575 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:03:24 ] Rubyの基礎って言うか どんなプログラム言語でもExcelとかでも 「かける」は*で「わる」は/とか プログラム以前の問題かもな
576 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:05:20 ] "abcd".length * 1.5 => 6.0
577 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:11:19 ] >>575 いや四則演算の記号はRubyの基礎だろ >>576 要件満たしてないぞ
578 名前:559 mailto:sage [2008/02/04(月) 21:10:54 ] ありがとうございました。
579 名前:デフォルトの名無しさん [2008/02/04(月) 22:31:14 ] Windows上でWinpcapを利用して、Etherealキャプチャデータをいじりたいんですが、 おすすめな方法ありますか? libpcapなら以下の方法があるみたいなんですけど・・・ www.goto.info.waseda.ac.jp/~fukusima/ruby/pcap/doc-ja/index.html
580 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:32:10 ] Rubyに慣れてないようだから、コード書くより日本語で書いたほうが早かったかもね。 とりあえず、6.0を四捨五入させて6にしかたったのなら (q.length*1.5).round と書くといいよ。
581 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:19:56 ] 今までRubyの公式のチュートリアルを見て勉強してきたんですが やっぱり物足りないなぁと思い始めてきました。 まだ趣味でやってる範囲なのですが本などを買ってやったほうがいいんですかね? インターネットで解説見れば無料だから・・・っていうのは甘いですか?
582 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:23:29 ] 本なんかいらんよ
583 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:34:14 ] Rubyistはオブジェクト指向スクリプト言語 Rubyを本棚に飾るのがマナーです
584 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:39:06 ] まー、言語にかかわらず、本とか買っても意外と読まないよなー。 空き時間に小説感覚で読んだりはするけどw 慣れてきちゃえば、実用的にデジタルデータの方が楽というか。
585 名前:初心者 [2008/02/05(火) 20:10:35 ] Ruby初心者が質問します ブラウザでRubyが受け取った値をCのプログラムに渡して、Cで計算してRubyで 返すなんてことできますか?
586 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:13:35 ] >>585 Ruby っつーかプログラミングと日本語の初心者だな。
587 名前:初心者(プログラミング、日本語、2ちゃんねる) [2008/02/05(火) 20:14:36 ] すまん
588 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:23:22 ] よくわからん Rubyでhttpなデータをダウンロードして それをCで書いたルーチンに処理させて結果をRubyで受け取りたいって事か? それともサーバ側でRubyなCGIを動かしてボトルネックになりそうな部分をCで書きたいということか? どっちもとりあえず可能とだけいっておく。
589 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:24:09 ] >ブラウザでRubyが受け取った値 ここが曖昧。Ruby組み込みブラウザか? とか言ってみる。 それともCGIなのか。COMでAcviteScriptRubyを呼ぶのか。 >Cのプログラムに渡して、Cで計算して Cで書かれた実行ファイルが既にあるのか、計算部分を 拡張ライブラリとして書き下ろすのか。 >Rubyで返す X:で -> O:に あるいはさらにRubyからブラウザになにか反映させるということか? ざっと見てこれぐらいオモタ
590 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:32:46 ] SWIGのことか?
591 名前:デフォルトの名無しさん [2008/02/05(火) 23:09:44 ] だれかRubyコンパイラ作らないの?
592 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:10:50 ] きちんとコンパイルされてるだろ
593 名前:デフォルトの名無しさん [2008/02/05(火) 23:12:27 ] じゃあネイティブコード吐けよ。
594 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:25:57 ] B-Rubyだっけ
595 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:00:15 ] Rubyで、2chの特定のスレURL(またはdatファイル)を任意で指定し、 すべての投稿から、「すでに投稿された文面が再度登場していたら、 その数だけレス番付きで抽出する」 というものはできないでしょうか。 要は何がやりたいのかと言うと、 「スレッドがコピペ投稿だらけ」になっており、 レス削除要請を行いたいのです。 ただ、そのコピペの数が尋常じゃないので抽出が困難なのです。 「文面の95%が一致していたらコピペとみなす」機構が嬉しいです。
596 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:00:59 ] できるよ。
597 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:02:54 ] >>581 本が無くてもWebページで身につけられるのは事実 ただ、はじめのうちは本があった方が理解しやすい とりあえず、本屋・図書館で立ち読みしてみてはどうだろう 必要だと思ったなら買えば(借りれば)いい
598 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:04:02 ] どうせ買うならポケットリファレンスみたいのは避けた方がいいと思う あれはWebで調べられるし、あんまり意味ない
599 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:07:52 ] Webが見られないところで調べられることは重要
600 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:24:14 ] 言い方が悪かった。 あれは辞書みたいなもんだからテキストそのものにはならない。
601 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:36:37 ] >>595 丸投げするなら「Rubyの宿題スレ」の方があってるかもしれん ただ、すぐに流れるかもしれんが。 もし自分でやりたいのなら、ここで質問しまくったらできる範囲だと思う。 あと、プログラム組んだことなくて、極力自分でやりたくないなら、宿題ス(ry ヒント的なもの ・datのDLは、 open-uri でいけるだろう ・datの中身は、cvsみたいなものなので、cvsライブラリか、eachlinesあたりで ・完全一致ならハッシュ取って調べるのが楽。 ・類似度判定が一番問題 AAに特化ということで、記号の数をデータとしてとって、とか。 専門じゃないので厳密なやり方はわからん あとは、datのサンプルがいくつかいるだろう。
602 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:45:25 ] 今からRubyを本格的にはじめようと思ってるんですが メーリングリストはどれを購読するのがお勧めですか?
603 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:56:00 ] MLは初心者にはお奨めしない
604 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:01:22 ] >>601 類似度判定はこのスレの上の方にでてた レーベンシュタイン距離とか何とかで出来るんじゃね?
605 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:26:58 ] 2chへのアクセスは、下手に簡易にすると 「2chの全板取得」とか「24時間丸ごと10分ごとに板の全スレの新着取得」とか そういう馬鹿をする人間が必ず出ている(確定事項)なので プログラム板の最後の良心の欠片として自力で調べてもらうということになってる 板自治を気取るのではなく自分の見てるスレだけから抜き出したいのなら、 自分の使ってる2ch専用ブラウザのローカルのログを加工するといい 作ったことのある初心者から言うと2ch仕様の調べもの込みで休日の朝から夜までかかった 全くのRuby素人なら1週間くらいかかるんじゃなかろうか
606 名前:デフォルトの名無しさん [2008/02/06(水) 02:33:35 ] >>605 下手に簡易って、探せば適当なライブラリがいっぱいありそうだが。
607 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:42:46 ] goRuaだっけかrubyでかかれた2chクライアントあるよね
608 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 03:03:11 ] Rubyを学ぶ気がないならぶっちゃけPerlで既存の組み合わせて作ったほうが楽かと
609 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:13:24 ] Cのプリプロセッサ #ifdef DEBUG hoge(); #endif のように、デバッグモードのときだけhoge()を実行するコードを書くのに良い方法はありますか?
610 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:15:39 ] ここにうpしてもいいですか?
611 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:25:26 ] >>609 hoge if $DEBUG
612 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:46:22 ] >>611 ありがとうございます(^^)
613 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:49:28 ] あ、所詮ただのif文/if節だから厳密な意味でデバッグモード専用にはできないよ if $DEBUG str='string!' end p defined?('s') これの場合、pで真が表示される いわゆる「実行させない」ようにさせるだけ(これで充分なことが大半だが) 真にNameErrorを出すような芸当をさせる簡易な書き方は知らない
614 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:32:45 ] >>602 「今から始める」人が、MLの購読で得るものは少ないと思うが 敢えて言うなら、日本語で質問ができるruby-list
615 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:20:38 ] ruby 1.9.0ビルドしてrubyなスクリプト実行してみたんだけど pythonでいうところの.pycみたいのが作られないんだけどそういうもん?
616 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:27:25 ] そういうもんです
617 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:28:57 ] いずれそのうちもしかしたらやるかもしれないみたいなことはいっていたけどな
618 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:42:00 ] brubyを1.6で作ったのが間違いだったらしい
619 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:48:17 ] 質問させてください いま、Fileオブジェクトを引数に持ち、ファイルに結果を書き込むメソッドを考えています 引数がFileオブジェクトの場合はそのファイルに書き込み、nullの場合は標準出力に書き込んで欲しいと考えています そこで class hoge def print(file) if(file ==null) ×××× end file.puts "なんだかの結果、書き出し" end end と書いているのですが、××××の部分をfile = selfとかしてもダメです なにかいい方法はあるのでしょうか? file.putsが複数回出てくるのでif文でnullの時だけputs ""にして、それ以外はfile.puts ""にするのややりたくありません よろしくお願いいたします
620 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:51:22 ] def print(io) io = STDOUT if io == null io.puts "hoge" end
621 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:58:13 ] ちなみにRubyではnullじゃなくnilな
622 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:00:32 ] >>620 ありがとうございます 助かりました STDOUTとか、その辺の定数みたいなものは自然と身についていくものなんでしょうか? ちょっと前にもARGVに気が付かず、コマンドライン引数を取得する方法に悩んでしまいました
623 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:03:53 ] マニュアル読めよ
624 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:19:02 ] >>623 まあそうなんですけど、私みたいな日曜プログラマはプログラム書きながらわからんところだけ調べるスタイルなので それに、どの言語もそうですけど、マニュアル分厚くて読む気しない
625 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:23:36 ] 役に立つかどうかはわからんが、 逆引きRuby www.namaraii.com/rubytips/
626 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:25:08 ] おまいらやさしいな 傍から見ててテンプレ嫁ググレカスとか書き込もうと思ったよ
627 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:34:27 ] 本を一冊読めば大抵のこと書いてあると思う。
628 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:47:04 ] コンピュータのディスプレイで読めるリファレンスマニュアルに分厚いも糞も無いだろ