最近新たにRubyを勉強し始めました。

 いままで、C、PASCAL、C++、VB、Perlなどを習得し、実際かなりコードを書いています。
 さてRubyをいじり始めて最初に嵌ったのが、クラスの取り違えでした。Stringを返すと思ったメソッドが、Arrayを返していて、Stringとの比較がFalseになっていました。 (3時間以上一箇所で悩んで、ベッドに入って、思い出してチェックして解決できました)
 変数に型がなく、なおかつ全てがオブジェクトの言語というの初めての経験で、結構とまどっています。

 さて、Rubyをプログラミングするにあたって、他の言語と違って気をつけるところはどこですか?
(今回の教訓:常識と違った挙動をしたときは、クラス名を確かめる)

回答の条件
  • 1人5回まで
  • 200 ptで終了
  • 登録:
  • 終了:2007/01/02 19:05:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答12件)

ただいまのポイント : ポイント15 pt / 200 pt ツリー表示 | 新着順
驚き最小の原則 garyo2006/12/27 00:56:41ポイント4pt
私も最近Rubyを始めました。 [http://ja.wikipedia.org/wiki/%E9%A9%9A%E3%81%8D%E6%9C%80%E5%B0%8F%E3%81%AE%E5%8E%9F%E5%89%87:title] >> Rubyの作者まつもとゆきひろは、その言語設計ポリシーとして一時期「驚き最小の原則」を挙げていた。 << なので ...
バージョンによる差が大きい? yna19622006/12/27 18:28:23
 マイナーバージョンアップによって、cgiライブラリのような汎用クラスの使い方が変わるのですか?  うーん、まだ、発展途上なのでしょうか?  それとも、1.9.0は、2.0(公開標準版)を作るためのβテスト版なのでしょ ...
安定版と開発版 しおり2006/12/30 12:24:07ポイント2pt
1.8系列は安定版で、1.9系列は開発版です。
メジャーバージョンアップなら yna19622007/01/01 15:08:31
2.0へのバージョンアップなら許される仕様変更ですね。 ただ、一種のオプションやプログマで1.8時代の仕様のように使えるようにしないと、困るのでないでしょうか? 個人的には新しい仕様のほうが、実際に使われるパ ...
たぶん garyo2006/12/27 20:42:32ポイント1pt
lolipopはRuby1.8.2を使ってますが、1.8.5や1.9.0にあげたら悲鳴の上がるサイトがたくさんでそうな気がします。 特にWEB系は進化が激しいのでまだ枯れていないのだと思いますよ。
nilとfalse以外は真 garyo2006/12/27 20:49:25ポイント3pt
nilとfalse以外は真なので0も真になり以下のようになります。 if 0 then puts "true" else puts "false" end 以下のようなときに式の値は0でもtrueになります。 if /Ruby/=~"Ruby" then puts "true" else puts "false" end
0が真になるって(^_^;) yna19622006/12/28 00:17:13
 空文字列が真になるって例文では書いてありましたが、数字0もオブジェクトなので真なのですね。今回も、ハッシュにキーが存在しなくて、nilになったときに、nilが空文字列にならないので、面倒な言語だなと思いまし ...
いえ、なんとなくですが garyo2006/12/28 00:19:55ポイント2pt
matzさんのこだわりを感じますね。 C系のプログラマはあせりそうですが、なれると素直な実装で納得できると思います。
多少は嵌りますね yna19622007/01/01 14:59:57
明示的に書く癖をつけているので、あまり以下のような構文は書きませんね。 &nbsp;&nbsp;if(ptr) x = *ptr++; 癖として以下のように書くようにしています。 &nbsp;&nbsp;if(ptr != NULL) x = *ptr++;
まずはリファレンスマニュアルから しおり2006/12/30 12:10:58ポイント1pt
まずはリファレンスマニュアルを読まれると良いのではないでしょうか? -Rubyリファレンスマニュアル - Ruby FAQ http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ -Rubyリファレンスマニュアル - Rubyの落とし穴 http://www.ruby-lang.org/ ...
空白 garyo2006/12/27 20:44:55ポイント2pt
a+b と a + b はOKですが a +b はNGです
もしかして、、、 yna19622006/12/28 00:20:03
a&nbsp;+&nbsp;bとa+bは、aの+メソッドを、引数bで呼び出すと解釈される。 a&nbsp;+bは、aメソッドを引数+bで呼び出すと解釈されるのでしょうか?

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません