2

私はRubyが大好きです。ここ数年、Rubyは私の選択した言語です。

しかし、それを学び始めてからも、同じ(または同等の)ことを行うにはいくつかの方法があるという事実に反発しました。いくつか例を挙げます。

  • メソッドにはエイリアスが含まれていることが多いため、常に最も適切で、人気のある、または一般的に受け入れられている代替手段を選択する必要があります。
  • andor&&さらにと||-それらの間の混乱の優先順位の違いがどれほどの原因になるかを見てください
  • forキーワード、経験の浅い非ネイティブのRuby開発者によってほぼ独占的に使用されます

そのような設計上の決定の背後にある理論的根拠は何でしたか?彼ら(マッツ?)は、その言語が採用しやすく、したがってその方法でより人気があると信じていましたか?

4

3 に答える 3

7

RubyはPerlに触発されており、Perlの重要な哲学の1つは「それを行うには複数の方法があります」です。つまり、冗長性はプログラマーにより多くの自由を与えるので問題ありません(そして彼らが望む機能が名前の下で利用可能である可能性を高めます彼らはそれを与えるでしょう-1つの下だけではありません)。それが実際に良いことかどうかのあなたの決定。

于 2010-07-21T12:31:53.787 に答える
1

マッツがRubyを書いたとき、彼は「驚き最小の原則」に従おうとしました。多くの場合、これは、同じことを行う方法が複数あることを意味します。たとえば、角かっこを使用して配列に割り当てる方法や、挿入メソッドなどです。私はそれを楽しんでいます。なぜなら、どの状況でどの正確な名前を使用するかを思い出そうとするのではなく(Javaではサイズと長さの関係で常に一時停止していた)、論理的に見えるものを書くだけで、通常は仕事。コードを読むとき、名前は通常自明であるため、通常は別の名前を使用しても問題はありません。ですから、どちらが最も適切か人気があるかは気にせず、その時点で最も論理的なものを選択します。

Matzは、「それを行うには複数の方法があります」というスローガンを掲げているPerlにも触発されました。

マッツは何が最も人気があるのか​​心配していなかったと思います。彼は自分が使いたい言語を書きたかっただけです。

説明しようとはしませんが、vs && ...

于 2010-07-21T12:29:28.360 に答える
1

andvs.&&は似ていますが、優先順位が異なることに注意してください。
a = b && c #=> a =(bおよびc)と同等。aはブール値に設定されます。
a = b and c #=>(a = b)およびcと同等。aはbに設定され、式はブール値です。

それを行うには複数の方法がありますが、それらの間には微妙な違いがあるかもしれません。(更新、質問の優先順位の違いについて言及していることに気づきました...申し訳ありません。ここには何も表示されません。先に進んでください。)

于 2010-07-21T12:40:09.513 に答える