- 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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 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 ]
- コンピュータのディスプレイで読めるリファレンスマニュアルに分厚いも糞も無いだろ
- 629 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:47:54 ]
- マニュアルに一通り目を通すのがめんどい、とかは分からないでもないけど、
この場合「組み込み定数」って項目がリファレンスのトップレベルにあるしなあ。
- 630 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:56:32 ]
- >>628
Rubyのオンラインマニュアルは充分「厚い」部類に入ると思うぞ やっぱ3000円出してたのしいRuby第2版買わないとどうにもならん 最初に4時間ほど使って本読んでおけば10分で見つかるものを オンラインヘルプとへなちょこチュートリアルで1時間かけて探すのはアホらしい
- 631 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:58:40 ]
- >>629
本気で言ってる? 「組み込み定数」という文字のどこをどう見れば 「RubyにはSTDOUTというIOオブジェクトの定数があってputsやprintのデフォルトになってる」って思いつくんだ?
- 632 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:03:55 ]
- 組み込み定数というページを見れば組み込み定数が載ってるよってことだと思うが
- 633 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:05:46 ]
- わからんといってる人にわかると言い張っても何も解決するはずもなく
- 634 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:11:12 ]
- 日曜プログラマじゃなくて、ただのバカなんだな
- 635 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:23:40 ]
- 「わからない俺のほうが正常なのだ」と言い張る馬鹿には
もう何も言えることは無いものな・・・。
- 636 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:28:41 ]
- ここは初心者に優しくないスレですね
とりあえず>>622には、俺も書籍の購入をすすめる でもそれに加えて、リファレンスマニュアルの内容は一通り把握した方が良い (どこに何が書いてあるか、が分かるぐらいには) HTML Help版なら検索も楽だよ
- 637 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:00:28 ]
- スクリプト言語に馴染みある人なら、特にRuby本買う必要ないと思うなぁ。
スクリプト言語Rubyの2分冊のやつ買ったけど、ほとんど見ないしWebの リファレンスですませてる。 Webのリファレンスですまない内容って、結局本にものってなくて、 メーリングリスト検索か、ソース読むしかないし。
- 638 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:01:47 ]
- まぁ救いは、Rubyのソースコードが綺麗に書かれていることくらいか。
- 639 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:46:46 ]
- Rubyにまともなデバグ環境ってないの?
- 640 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:03:54 ]
- まともな人はRubyを選びませんから
- 641 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:08:18 ]
- 10年後にはRubyが主要な言語になってるよ。
- 642 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:15:54 ]
- >>641
(期待も込めて)ハゲドウ
- 643 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:27:37 ]
- >>641
無理。
- 644 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:28:42 ]
- >>643
お前何も分かってないんだな。
- 645 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:38:59 ]
- >>639
ttp://www.ruby-lang.org/ja/man/html/debug.html
- 646 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:39:53 ]
- >>645
それはまともじゃない
- 647 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:55:29 ]
- 戦略としてはアレだ、PerlのカリスマであるラリーウォールをRuby陣営に
引きずり込もう、なんとしても。 どうしたらいいか? -なにはともあれラリーウォールと合意を採る -Perlモード作って、Perl6完全互換Rubyを作る -Perlコミュニティを取り込む -。。。 こりゃ不可能だww だがカリスマ性は重要。MatzはMatzだが、ラリーと どうしても比較してしまう。
- 648 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 06:19:43 ]
- Rubyのチートシート集(チートシートとはカンニングペーパーのことです)
Ruby and Ruby on Rails cheat sheets >> Scott Klarr www.scottklarr.com/topic/104/ruby-and-ruby-on-rails-cheat-sheets/
- 649 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 07:00:19 ]
- >>647
Ruby本スレ向きの話題だが・・・ ジョークで言っているのだろうが、現実的に考える 人というのは、振り向け振り向けと言っても、振り向いてくれないもの 向こうから来てくれる魅力のあるものを提供する必要がある -Parrot上でRubyを実装 -RubyからもPerlの膨大なライブラリを使えるようにする -ちょっと使ってみようと思わせる、移行しても不利益がないと感じさせる -多くのPerlの人たちがRubyに興味を持つ -そのうちラリーウォールが気に留める だな 引きずり込もうと考えてはあかんと思う。得たいならまずは与えることだろう。
- 650 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 08:04:18 ]
- Rubyをアニメ化すれば、ラリーも鞍替えしてくれるに違いない。
- 651 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 08:40:51 ]
- そこでRubyちゃんですよ
- 652 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:13:44 ]
- >RubyからもPerlの膨大なライブラリを使えるように
これ確かあったんだけど、もうメンテされてないんだよな。
- 653 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:55:46 ]
- >>652
kwsk とりあえず、Acme::JapaneseAvActress が動けばいい
- 654 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:00:43 ]
- >>653
ttp://www.yoshidam.net/Ruby_ja.html#perl 自分は試せる環境がないのでそのへんはよろしく。 「Ruby Susieプラグイン」でググると手繰って辿り着けたハズ。
- 655 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:04:38 ]
- AmritaでのHTML出力でわからない所があるので質問させてください
テンプレートにこう書いといて <tr id="table1"> <td id="name"><td id="author"> </tr> data = { :table1=>[ { :name=>"Ruby", :author=>"matz" }, { :name=>"perl", :author=>"Larry Wall" } ] } こうすりゃサンプルにある通り <tr> <td>Ruby</td> <td>matz</td> </tr> <tr> <td>perl</td> こうでますよね。 この時に tr の属性値を変えるのってどうすればできるんでしょうか? :table1=>[ Amrita::a(:value => "test"){:name => "Ruby"} ] だと文法エラーになっちゃうんですよね... Amritaのバージョンは調べ方がわからなかったので ファイルの作成日時だけ書かせて頂くと、2003/03/09になっています
- 656 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:04:16 ]
- 煽りじゃなくて、Scheme(or Lisp)に有って、Rubyに無い機能ってある?
あるとしたら、その機能って必要?他の機能で代用可能?
- 657 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:07:02 ]
- >>656
S式
- 658 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:08:32 ]
- そりゃLispではない以上
Lispにあるものをすべて備えているわけがない すべて備えたらそれはただのLispだ 本スレで聞くといろいろ細かいこと教えてもらえるかもよ
- 659 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:31:39 ]
- 質問というよりも言語仕様の問題に近いのかもしれませんが、
どうしてRubyにはインクリメントならびにデクリメント演算子がないのでしょうか? 実質 x += 1 で何も問題はないのですが、 この表記は個人的になんか気に入らないので、納得のいく理由が欲しいのです。 調べたりしてもなぜないのかまで踏み込んでいるところが見つからなくて……よろしくお願いします。 前置や後置でややこしいからかな……などと思いましたが、 それならば後置限定で採用するなりすればいいじゃないかと思うのは浅知恵でしょうか? ならびに x.next x.succ で後置インクリメントじみた挙動が実現できるのは知っていますが、 インクリメントの意味合いでこのメソッドを使用するのは感心できる行為なんでしょうか? またその場合、インクリメントはメソッド、デクリメントは演算子とアシンメトリになってしまうのですが、 なんかもう全部ひっくるめて、ここらへんはどう解釈すればいいんでしょうか?
- 660 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:41:44 ]
- >>659
現行のRubyにインクリメント演算子が無いのは言語作成者のポリシー。 10年も前のMLでの発言だが、基本的には変わってないはずだ。 ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/5323 > すんません.この件は以前から指摘されているのですが(演算子はC > に似ているのに++と--は対応する演算子が無い),++の動作が本質 > 的に「変数を操作する」ものであるため,変数がオブジェクトでな > いRubyでは導入できないでいます.++や--の「オブジェクト指向的 > 意味」がRubyの他の部分と整合性を保ったまま定義できれば採用し > たいのですが…. うまい実装の仕方があれば要望として取り入れると思うぞ。
- 661 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:47:56 ]
- あと
> x.next x.succ で後置インクリメントじみた挙動が実現できる できないと思うぞ i = i.succ と書くことは i += 1 と書くのと見栄え的にも手間的にもたいして変わらないんじゃないかと
- 662 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:49:15 ]
- Cだとx++;で済んで簡潔なのかもしれんが、
例えばループ書くのに使うときとかは、ブロック使ってメソッドに抽象化して使う ようにして、元が多少ダサくなるのは見逃してくれ。
- 663 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:57:55 ]
- なんでインクリメント作れないのかは
「整数オブジェクトを破壊的に変更できないから」というのもあると思う
- 664 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:11:45 ]
- 俺もRuby使って最初に躓いたのが、++と--が使えないことだったw
Matzらしくもない。こんなんとっとと取り込んじまえばイイヤン。
- 665 名前:659 mailto:sage [2008/02/08(金) 02:15:06 ]
- >>660-663
まとめてですみません。素早いお返事ありがとうございます。 確かにそう考えると合点がつきますね。 自分で考えても全然納得できなかったのですが、ようやくすっきりしました。 ありがとうございます。 >>661 できませんね…… succをリファレンスで調べたときに「インクリメントの代替はあるじゃん!」と勘違いして、 そのままずっと勘違いし続けてたみたいです。重ね重ねありがとうございます。
- 666 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:18:50 ]
- >>660の「変数がオブジェクトでない」ってどういう意味?
- 667 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:20:24 ]
- >>665
え〜納得しちゃうの?w ごねようぜ・・・w
- 668 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:35:19 ]
- >>667
「しんたっくすしゅがーとかでさいようしましょうよ〜」とかでいいですか?w いや本当はちょっとごねたいんですけど、なにぶん『初心者スレッド』で質問している程度なんで 納得した先にできることがないっす。 += とか本当は嫌いなんだけどなあ……みたいな感じで。
- 669 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:41:47 ]
- >>668
かわいくゴネたら、俺がパッチ作って匿名でRubyメーリングリストに なげるっていう条件でどう?w かわいくなかったら、作らないw
- 670 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 03:40:39 ]
- >>666
単なる名札。
- 671 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 03:59:32 ]
- >>659-670
先日、io-languageスレで、++ を実装しようとしてこねくり回してたところだったんで、 タイムリーすぎて吹いた なんでスマートにできないかというと、 メソッド内で、メソッドを呼んだオブジェクトを、格納した変数に代入できないから。 で、スマートな解決法はある。 Fixnum なら、Fixnum に 中身のデータを設定するメソッドを作ってやればいい。 例えば、Fixnum.set_value() みたいな。 ただし、Rubyのソースをいじるはめになるだろう どーしても、Rubyのコードでやりたければ、Fixnumのメンバを持った、 Fixnumのラッパーを作るしかないだろうな。 そうすれば、簡単に実現できる。 結局、数字のリテラルを書くように使えず、そのクラスをいちいち new しないといけないのが面倒だが
- 672 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:00:27 ]
- 変なところで、句読点打った orz
> メソッド内で、メソッドを呼んだオブジェクトを、格納した変数に代入できないから。 メソッド内で、メソッドを呼んだオブジェクトを格納した変数に、オブジェクトを代入できないから。
- 673 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:02:27 ]
- > 「整数オブジェクトを破壊的に変更できないから」というのもあると思う
ゲ、>>663 が簡潔にまとめてるじゃないか ・・・ orz
- 674 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 05:28:31 ]
- >>660
残念ながら松本が++が嫌いだと言ってますので多分ないでしょう。
- 675 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 06:12:21 ]
- a.++
で万事解決
- 676 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 07:59:16 ]
- >>675
> a.++ > で万事解決 だーかーらー Rubyの数関係のオブジェクトはイミュータブル、ってのがわかってないダロオマエ
- 677 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 08:24:51 ]
- rubyのオブジェクト指向度の低さに唖然・・・
|

|