2009-08-17 4 views
4

私は単純なRuby on Railsプラグインを構築しています。私はSetクラスの使用を検討しています。他の人のコードであまりにも頻繁に使用されるSetクラスはありません。Rubyでのセットの使用

人々がセットではなくアレイ(サブクラス)を使用する理由はありますか?セットを使用すると、一部の人々に依存する問題が導入されますか?

答えて

8

Setは標準ライブラリの一部なので、依存関係の問題は発生しません。それが問題を解決する最もクリーンな方法であれば、それに行きましょう。使用(またはその欠如)について

私は2つの主な理由はおそらくあると思います。

  • プログラマはセットが解決
  • に最善の方法であるとき
  • プログラマが実現していないライブラリを意識することはないが、
  • プログラマは、セットに関するanythignを全く知らない/覚えていない。

3つの主な理由を確認してください。

+0

Setはいつも利用可能だと思いますか?スタンダードライブラリがどのように「標準」であるのかわからず、どの程度までホストにいつも利用可能であることに依存することができます。 – avdgaag

+3

これはRubyの標準ライブラリの一部です。あなたはそれを使うつもりのマシンで 'ri Set'を押すことで、基本的なドキュメントを手に入れることができます。基本的に、あなたがRubyにアクセスできるなら、 'Set'ライブラリ – Pinochle

0

私がここで読んだことから私が理解したやり方は、Setがおそらく数学的集合であるということです。順序は重要ではなく、保存されません。

多くのプログラミングアプリケーションでは、通常、順序を保持したいので、数学を使用していない限り、使用は制限されています。

+0

私はオブジェクトのタグのコレクションを見ています。タグはユニークで、オーダーは関係ありません。良いフィット感のように聞こえる、いいえ? – avdgaag

+1

確かに、それは良いフィット感です。最後の段落で与えられた悪いアドバイスを無視してください。 – Pinochle

+0

私は役に立たないとは言っていませんでした。プログラミングアプリケーションの多くは命令を必要としています。私の口に言葉を入れないでください。 –

2

とにかくRubyの配列は非常に柔軟です。たとえば、セット、スタック、キューなどのような脅威を与える方法はたくさんあります。

+0

にアクセスできます。なぜなら、これはRubyプログラマがsetクラスを使用していない可能性が高いためです。 Rubyの配列は通常十分です。 – Allyn

+1

しかし、この場合のように、重複を必要としない場合、Setクラスを使用する方が理にかなっていませんか?なぜホイールとサブクラスの配列を再作成し、重複を防ぐためにロジックを追加するのですか?これは修辞的な質問ではありません - 私は知りたいです。それが問題のポイントです。 – avdgaag

関連する問題