[#47414] <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp>

そえじま@勉強中です。

37 messages 2010/09/17
[#47420] Re: <=>の意味は? — 藤川浩明 <fhir0aki3@...> 2010/09/17

 他の方がすでに解答されているみたいですが、一応僕なりの答えを書いてみます。僕もRuby初心者なのではっきりとは言えないんですが・・・。

[#47422] Re: <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp> 2010/09/17

そえじま@勉強中です。

[#47424] Re: <=>の意味は? — "Y. NOBUOKA" <nobuoka@...> 2010/09/17

信岡です。

[#47426] Re: <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp> 2010/09/17

そえじま@勉強中です。

[#47428] Re: <=>の意味は? — "Y. NOBUOKA" <nobuoka@...> 2010/09/17

そえじまさん

[#47429] Re: <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp> 2010/09/17

そえじま@勉強中です。

[#47433] Re: <=>の意味は? — 藤川浩明 <fhir0aki3@...> 2010/09/18

 色々返答したいと思いましたが、時間が無いので「OOPの何がいいのか、いまいち分かっておりません。」の部分にのみ解答させていただきます。

[#47435] Re: <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp> 2010/09/18

そえじま@勉強中です。

[#47438] Re: <=>の意味は? — masayoshi takahashi <maki@...> 2010/09/18

高橋征義です。『たのしいRuby』の著者の片割れの方から来ました。

[ruby-list:47441] Re: <=>の意味は?

From: "T.Soejima" <clev@...2.so-net.ne.jp>
Date: 2010-09-18 04:56:49 UTC
List: ruby-list #47441
そえじま@勉強中です。

高橋さま、わざわざご著作を発掘していただいきまして恐縮です。
お手数をおかけして申し訳ございません。

masayoshi takahashi さんは書きました:
> このように、配列の要素をソートして出力したいわけです。
> とはいえ、上ではさらっと「ary.sort」などとソートしてますが、もちろん
> Bookはただの文字列や数値ではないため、ソート順を定義しないといけません。
>
> で、たぶんご存知かと思いますが、ソートをするには大小比較ができる
> ことが前提です。2つの本(Bookオブジェクト)を持ってきて、どっちが
> 大きいか小さいかの結果によってソートするので。
>   

なるほど。genre.to_s などの比較を行うために数値化していると
いう考え方でいいのでしょうか?

> # とはいえ、どうやって定義されてるの? と思うだろうというのを
> # 予想して「こんな感じです」というのを書いてみたのが、このスレッド
> # 冒頭の「<=」の定義なのでした。はい。まあ分かりにくいところかも。
>
>   

あ。そういう意味だったんですね。読み違えておりました。m(__)m
「こうやって定義すればできるよ」的な意味のサンプルコードなのですね。
私はこれが必須なのかと勘違いしておりました。
(まぁ、よく読めば分かるという話みたいなので、読解力不足です。すいません。)

> 何が簡単で何が面倒かは人によっても意見が分かれるかもしれませんが、
> 例えばBasicでは、いきなり「a < b」みたいな変数同士の比較とか、あるいは
> ソートとかを、複雑なデータ構造に対してするのはできなかったと思います
> (方言によってはそうじゃないかもしれませんが)。というか、こういうのが
> できるようにするためには、データ構造自体が処理方法(手続き)を知っている
> ことが必要になります。そのためのOOPですよ、というのが教科書的な説明です。
>
>   

実はこのあたりが、ネックになっておりまして・・・
データ構造が関数(メソッドですか?)へのポインタを持てれば、わざわざ
OOPする必要あるのかなぁ〜?とかついつい思ってしまうのが素人考えだったり
するような気がします。私見ですが・・・

RubyのソースはCで書かれていたと思うのですが、このあたりはどうなんでしょ
うか。
(とてもじゃないですが、独力では読めません・・・)

そういえば、Rubyにはブロック参照みたいなのがありますよね?
(&blockみたいな)あれって関数のリファレンス渡しとは違うのでしょうか?
(素人のたんなる想像で発言してます。申し訳ございません。)


> ついでに宣伝ではないですが、RubyでのOOPについて、ある程度腰を落ち着けて
> がっつり勉強したい、ということであれば、artonさんと宇野るいもさんによる
> 『Ruby (3) オブジェクト指向とはじめての設計』(「(3)」は本当は丸付き数字)
> が良いかもしれません。とりあえず本書の「はじめに」は「OOPは難しいかも?」
> という人にはぜひ読んでいただきたい感動的な導入になっているので一読を
> おすすめしたいです。
>
> 高橋征義 (maki@rubycolor.org)
>
>   

かなり興味がわいたので、早速注文いたしました。
(理解できるかどうか分かりませんので、また質問させてください。)




In This Thread