- 1 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 01:07:21 ]
- プログラミング言語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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 641 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:53:17 ]
- 配列の中での*はlispでの準クオート中の式を,@付けて評価→展開するものが元ネタっぽい。
だけど関数定義のときに引数定義の中で使われると、 lispの引数リストで使われる&restとか ...みたいな可変長引数みたいになる、ややこしいな。 &付きでProcを呼び出すものはなんだろう、C++のメンバ関数ポインタ? def foo(*x)のときの*x言うのはrest引数構文 puts *arrの*arrは展開構文 puts &arrの&arrはProc変数渡し構文 Matzも*や&単体では意味が無いって言ってるし、こんなのでいいんじゃない? さらにこういう前後の状況によって決まる類の「なんとか構文」なんてものは、 仕様書のある言語ではよくあるものだし。
- 642 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:00:53 ]
- Rubyとか超ウケル
- 643 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:23:21 ]
- puts &arr ってするとエラーが出るんですけど。。。
(ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-mswin32]) wrong argument type Array (expected Proc) (TypeError)
- 644 名前:デフォルトの名無しさん [2008/09/07(日) 15:40:31 ]
- エラーが出ていいんだよ。エラーを読める程度の英語をちゃんと身につけないとねw
- 645 名前:デフォルトの名無しさん [2008/09/07(日) 15:44:12 ]
- 「文系 Web 2.0」 じゃ、やっぱ話題について来れないんだろうな…
java.net(英語)にも妄想オタクな奴が多いけど、サーバ・サイドだから学歴は高い奴多いしくおかしな文章を書いたりしないな。 だけどrubyは無能な文系ばかりしかいないようだ…メーリングをググってもゴミのごたくばかりだろ… Matzはいつも大変だな…
- 646 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:45:04 ]
- >>644
あっ、エラーでいいんですか。 みなさん、とうとうと解説されているので、てっきり意味のある文だと思いました。
- 647 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:03:30 ]
- >>646
>>633を構ってないだけだ
- 648 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:07:49 ]
- >>641
文法上サポートしている構文というなら別にそれで文句はないですが、マニュアルに書いといてください。 p [*[11,22,33]] が出来るところを見ると、単項式として値を返すので、言語上の分類としては演算子じゃないかなと思います。
- 649 名前:デフォルトの名無しさん [2008/09/07(日) 16:14:26 ]
- >>646-647
君たちはprocを理解してないのに偉そうにしてていいの?もっと一所懸命に勉強しないと!
- 650 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:29:34 ]
- >>648 の笑いどころ
lisp という単語出てきたとたん、腰が引ける。 2ch に来て「マニュアルに書いといてください。 」 理系の高学歴様は、ギャグのセンスもさすがだなw
- 651 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:45:51 ]
- >>646
そんなことよりおマンコはちゃんと洗っといた方がいいですよ。いつ何があるかわからないし・・・
- 652 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:48:00 ]
- 変数名がかぶっても、ブロックの中だけ有効にするにはどうすればいいのでしょうか?
a = 1 1.times do a = 2 end puts a # 1になって欲しい
- 653 名前:デフォルトの名無しさん [2008/09/07(日) 16:52:22 ]
- それよりも >>641がC++どころかCすらも理解してないのにはビックリした!
- 654 名前:デフォルトの名無しさん [2008/09/07(日) 16:54:20 ]
- 質問なので、age失礼します。
携帯でGoogle chartを使おうと、以下のようにchartのアドレスをhtmlに埋めました。 puts <<-EOD <html><body> <img src="chart.apis.google.com/chart?chs=150x150&cht=lc&chd=t:20,40,50,60,40,10,3"> </body></html> EOD 結果、auやvodaphoneでは見えたのですが、docomoではグラフが見えません。そこで調べてみると、docomoではpngを読まないため、gifにコンバートしろとのこと。 ttp://ke-tai.org/blog/2007/12/10/googlechart/ しかし、Rubyで同様のコンバートを行うにはどうしたら良いか、そしてどうやってhtmlに埋め込んでいいかわかりません。やり方が乗っている場所でも結構ですので、どなたか教えていただけませんか。よろしくお願いいたします。
- 655 名前:デフォルトの名無しさん [2008/09/07(日) 16:58:35 ]
- >>652
>>649
- 656 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:12:31 ]
- >>652
変数名がかぶってる限りは無理 ちゃんと違う変数名で定義するしかない
- 657 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:20:44 ]
- >>656
そうなんですか。 Perlのように、局所化するmyとかはないんですね。。。
- 658 名前:656 mailto:sage [2008/09/07(日) 17:21:10 ]
- 追伸
初心者スレの範疇を外れるけど、現在のruby1.9.0系(開発版)では ブロックローカルな変数を定義する(=名前がかぶっても問題ない)文法がある たぶんruby1.9.1にも入るはず
- 659 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:25:32 ]
- >>656-658
やっぱり、このレベルなのか…
- 660 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:36:39 ]
- >>658
今後のRubyには実装される予定なんですね 了解しました。
- 661 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:44:55 ]
- ローカル変数として同じの使ってるぶんには被るの許容するしかないな
まあ不便っちゃ不便
- 662 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:46:54 ]
- クロージャとかイテレーターって知ってる?
- 663 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:49:18 ]
- JRubyでYAML使おうとしています。
日本語をdumpすると"\343\203\206\343\202\271\343\203\210"な感じで出力されてしまいます。 RubyのSyckでも日本語をバイナリとして扱ってしまうという、似た感じの問題があり、 パッチやら何やら書かれているようですが、 JRuby(JvYAML?)において日本語文字列のまま出力させる方法はありませんでしょうか?
- 664 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:02:09 ]
- >>663
Ya2YAML JRubyで試したことはないが、pure rubyだからたぶん動くんじゃないかな
- 665 名前:663 mailto:sage [2008/09/07(日) 18:18:46 ]
- >>664
どうもありがとうございます。 でも、Ya2YAMLはSyck用のバイナリ認識するとこを修正なんだそうです。 JRubyの場合はJvYAML(JvYAMLb)だそうですので、Pure Rubyか否かは関係なさそうです……。 gihyo.jp/dev/serial/01/yaml_library/0006 日本語全然使えない、とか書いてあるところもあったりして。 普通に表示したりする分には問題無いのですが、可読性という意味で言うと価値が激減。 dumpすると頭に"---"がつく辺りもRubyの最新版と挙動が違ったりするのですよね。細かいですが。 Javaのライブラリを使っていなければRubyを使うのですけれども……。
- 666 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:19:14 ]
- >>654
ImageMagickプログラムを使うか、それをRubyから使うRubyMagickを使う 自分のサーバに「Google Chartにデータ渡して結果を受け取りGIFに変換して画像を吐くCGI」として置くしかないな
- 667 名前:654 mailto:sage [2008/09/07(日) 18:36:53 ]
- ありがとうございます。
なるほど、直接コンバートできるような手立ては無いということですね。 では、画像吐き専門のcgiを作ることにします。 (PHPでやるかもです)
- 668 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:39:30 ]
- >>665
楽してないでそれぐらい自分で実装したらどうよ?
- 669 名前:663 mailto:sage [2008/09/07(日) 18:52:47 ]
- >>668
すみません。スキルがゴミなもので、解決策が自分だけの力では思い浮かばず、 一週間程悩んだ挙げ句に、こうして初心者スレで質問させていただいている次第です。 実装、というのはYAMLのパーサを実装ということでしょうか? 言語内DSL(もどき)を作って、YAMLを使わない方法に逃げることは一応考えているのですが……。
- 670 名前:デフォルトの名無しさん [2008/09/07(日) 18:56:36 ]
- いつも「おっきいチンチン」のこと想像しながらWebしてます!
- 671 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:11:23 ]
- YAMLをあきらめてJSONを使う。
- 672 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:20:17 ]
- YAMLで作ったデータをどこに持ってくのかにもよるな
- 673 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:25:19 ]
- >>665
Ya2YAMLのソースコード読んでみたが、Syckに依存してるらしきところはないよ だからSyckかJvYAMLかは関係ないはず
- 674 名前:663 mailto:sage [2008/09/07(日) 20:16:56 ]
- >>664 >>673
う、すみません。Ya2YAMLをちょっと勘違いしていました。 ちゃんとソース読んできます。どうもありがとうございます。
- 675 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 20:30:49 ]
- ゴミなんでしょ?もう来るな。
- 676 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:13:21 ]
- コテつけろよ
- 677 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 15:11:49 ]
- デンターシステマのかためより、やらかめの方がいいですよ。
どうせ堅めを使っても歯ぐきから血が出るだけなんで。
- 678 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:27:16 ]
- 歯ぐき弱すぎじゃね・・・?
個人差は有るだろうけど、 いっぺん歯科で相談してみたほうがいい。
- 679 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:42:29 ]
- 普通は1から10まで足して55になるんですが、逆に10から9,8と足していく文はどうなるんでしょうか。
- 680 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:03:12 ]
- やっぱり55になります
- 681 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:23:32 ]
- 逆から足して同じ結果にならないなら大発見かもしれん
- 682 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:25:57 ]
- BEとLEで結果が違います
- 683 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:30:58 ]
- >>681
多項式級数式ではそういうことがよく起こりますが…もしかして無能?
- 684 名前:デフォルトの名無しさん [2008/09/08(月) 18:46:45 ]
- どっちが頭いいかをふっかけてくる奴がいっちゃん無能
- 685 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:57:42 ]
- 無能はすぐage進行にしたがるww
- 686 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:58:12 ]
- >>679
よくわからんけど、こんなのかな。 i = 10 sum = 0 while i > 0 sum += i i -= 1 end i = 0 sum = 0 while (i += 1) <= 10 j = 10 - i sum += j end sum = 0 (1..10).to_a.reverse.each {|i| sum += i }
- 687 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:01:41 ]
- downto
- 688 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:05:54 ]
- ruby1.8.7きめぇえええええ
[*(1..10)].reverse.inject(0,&:+) # => 55
- 689 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:15:31 ]
- &:+って何?
- 690 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:19:51 ]
- みなさん、ありがとうございます。
ちゃんと55になりました。 逆走もあったんですか…
- 691 名前:デフォルトの名無しさん [2008/09/08(月) 19:21:59 ]
- >>688
これは可読性以前の数学パズルの世界じゃないの? rubyのキモさは、Cのポインタをほうふつさせるキモキモだなw
- 692 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:25:02 ]
- 委譲の英訳ってtransferでいいの?
辞書だとそうなってるけどプログラミングでもそうなん?
- 693 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:27:54 ]
- >>692
オブジェクト指向における委譲はdelegation
- 694 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:31:54 ]
- サンクス
delegateってメソッドポインタの事かと思ってたけど 委譲の意味でも使うのか。
- 695 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:19:05 ]
- >>694
C#のやつのことなら、delegateをそういう機能に使うキーワードにしたって だけで、突き詰めた意味は結局委譲。
- 696 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:28:31 ]
- めそっどぽいんたってなんじゃらほ
- 697 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:37:20 ]
- (1..10).reverse_each.inject(:+)
- 698 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:00:35 ]
- >>696
C#を調べろ、としか言いようがない。 要するに関数ポインタのC#版。
- 699 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:08:03 ]
- >>696
特定のインスタンスの特定のメソッド(GUI部品とか)を呼び出すためのポインタ 特定のクラスのオブジェクトにメソッド実行を依頼すると考えれば根っこは同じ という説明はどうだろう
- 700 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:18:00 ]
- わっかりやすいのう
- 701 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:18:37 ]
- 質問です
関数オブジェクトと普通の関数を呼び出すときのコストってどちらも同じですか?
- 702 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:41:11 ]
-
・Rubyには厳密な関数はない ・Rubyには関数オブジェクトもないっていうかまあこのへんは別にいいや てことで、普通のメソッド定義とProc(lambda)オブジェクトの比較と読み替える Procの呼び出しコストの重さは異常 以上 使うと面倒な概念をとても簡潔に表現できるけど、多用すると明らかに遅くなるので注意 便利なのでほいほい作る傾向にあるが、何度も使う部分に組み込む場合は、できれば丁寧に分析してメソッドにしたほうがいい
- 703 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 06:12:15 ]
- Rubyってメソッドもオブジェクトなの・・・?
- 704 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 06:44:11 ]
- >>703
オブジェクト化することもできる
- 705 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 07:23:00 ]
- そんなことしたマンコは臭うけどな
- 706 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 08:30:13 ]
- javascriptバカにすんな
- 707 名前:デフォルトの名無しさん [2008/09/09(火) 08:32:52 ]
- 臭いのは勘弁して・・・
- 708 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:08:56 ]
- javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww
- 709 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:09:38 ]
- 毎日が夏休み
- 710 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:17:50 ]
- >>703
ブロックつきメソッドの {|x| ...} 部分を「持ち歩ける」と考えてもらうと間違いない
- 711 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:24:09 ]
- >>708
>javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww spidermonkeyもrhinoもコンソールから起動できるじゃん。 バカ丸出しはおまえwww
- 712 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:38:26 ]
- javascriptは組み込み向けの設計ってこと忘れてるおまえは、バカ丸出しww
- 713 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:25:13 ]
- 話題のv8のshellが普通にいい感じですよ
- 714 名前:デフォルトの名無しさん [2008/09/09(火) 11:33:16 ]
- 個人の著作を売り物にするようなところだしmixiと同じだな。
そのうち違う波が来て潰されるんだろうな…
- 715 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:40:34 ]
- >>702
そうなんですか。 昨日からruby勉強し始めて、全部関数オブジェクトにしたら一貫性あるかな? とか思っていたんですが、重いなら仕方ないですね。。
- 716 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:45:08 ]
- 全部ラムダ式にすればいいと言うわけですね
- 717 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:07:13 ]
- 質問です。
配列のmap関数で適用する手続きの代わりに関数オブジェクトを使うことはできませんか?
- 718 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:18:26 ]
- 関数オブジェクトって何ですか?
Procオブジェクトですか、ブロックですか?
- 719 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:23:08 ]
- たとえば、
hoge = lambda{|x| x+1} このhogeという値にバインドした関数オブジェクトをmapで使うことはできませんか?
- 720 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:26:52 ]
- (1..10).map &hoge
- 721 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:32:47 ]
- >>720
おお、すばらしいです では、次の質問ですが、 関数オブジェクト同士で関数合成ってどうやるんですか?
- 722 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:37:10 ]
- procとlambdaで作ったオブジェクトってイマイチ分からないのですが、簡単に言えば何が違うんですか?
- 723 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:46:54 ]
- ttp://www.hinet.mydns.jp/tdiary/?date=20080220
- 724 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:49:57 ]
- >>721
例えばこんなのがある Function Composition 2.0 Ruby Banter #006 media.fngtps.com/rubybanter/2007/006/
- 725 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:04:29 ]
- >>721 >>722
そのオブジェクトは Proc オブジェクト 違いはこのへんに ttp://doc.loveruby.net/refm/api/view/method/Kernel/m/lambda
- 726 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:10:13 ]
- 「関数オブジェクト」なんてないということをとりあえず前提として話してくれ。
なんで執拗に「関数オブジェクト」と言い続けるんだ?
- 727 名前:717=721 mailto:sage [2008/09/09(火) 13:10:26 ]
- >>721と>>722は別人です
- 728 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:12:54 ]
- func do |x| p x end
func { |x| p x } の違いでしたか・・・
- 729 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:22:21 ]
- 質問です
ある変数の型が何なのか調べる方法はありますか?
- 730 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:37:19 ]
- 質問です。
hoge = Array.new(10){|i| i}.map{|x| x+1} と hoge = Array.new(10){|i| i}.map!{|x| x+1} ではリソースの使い方に違いがありますか??
- 731 名前:デフォルトの名無しさん [2008/09/09(火) 14:41:59 ]
-
- 732 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:44:20 ]
- >>729
Rubyの変数には型はありません
- 733 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:47:11 ]
- >>732
では、たとえば配列の要素をすべて足す関数を作って、 整数と文字が入り交じった配列を渡してしまった場合はどうなるんですか?
- 734 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:48:14 ]
- 配列の要素の型に応じて違う処理をさせる方法はありませんか?
- 735 名前:デフォルトの名無しさん [2008/09/09(火) 14:48:49 ]
- 精子はやっぱり飲んじゃった方がいいかな?
- 736 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:52:28 ]
- >>732
型が無いというのも誤解を生む表現だと思うのですが、 ではどのオブジェクトのインスタンスなのか調べる方法は無いんでしょうか?
- 737 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:53:56 ]
- >>730
メモリとかを気にするのに Array.new に引数をつけてる人は久しぶりに見た nil が 10個生成されて直後に置き換えられるから最初のArray.newが一番無駄なんじゃね で、map と map! の差だけで、見たままの動作で、見たままのメモリ消費だと思われる 配列要素が 1万個とかバカみたいに多いときは後者のほうが一瞬だけ若干得 ただ、後者のような書き方はあまりしないかな
- 738 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:54:09 ]
- どのクラスのインスタンスなのか、でした。
- 739 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:56:26 ]
- >>736
型はない a = 10 したあとに a = 'str' としても動作する以上、変数に型は無いと言って差し支えない で、オブジェクトがどのクラスに属しているかはclassメソッドを使うとわかる
- 740 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:56:36 ]
- >>730
前者は配列が2個作られる。後者は1個だけ。課題か何かか? >>733 足せないものを足そうとした時にエラー >>734 kind_of? で仕分ける
- 741 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:00:56 ]
- Rubyの変数は本気でただのラベルだからな
他の言語では変数はいわゆる箱のようなメタファで説明できて、箱には形が決まってたりするもんだが >>734 動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う
|

|