[#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

GyRCISE/JyE5SlZFeiQ3JD8kJCRIO1ckJCReJDckPyQsISI7fjRWJCxMNSQkJE4kRyFWGyhCT09Q

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

そえじま@勉強中です。

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

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

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

From: arton <artonx@...>
Date: 2010-09-18 05:33:31 UTC
List: ruby-list #47444
artonです。

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

というように、グローバルな関数に操作対象を引数として与えるのか、それとも
FILE構造体の中に関数ポインタが入っていると仮定して

FILE*fp = fopen(...);
fp->fprintf(...);
fp->fclose();

と書くかの違いと理解すると良いと思います。思いっきりC++みたいですが。
で、これが思いっきりC++(というOOPL)なのですから、その考えはまさにOO
(のうちのカプセル化というあたり)です。
で、上のことをするのに、
struct FILE {
 ...
 void (*fprintf)(const char* ...);
};
としておいて、関数ポインタに構造体(ヘッダファイルにたぶんある)とはファ
イル上別の位置(おそらくソースファイル)に定義した関数をfopenの中で押し
込んで、とか面倒なことをするよりも、
struct FILE {
  void fprintf(...) {
     ...
  }
};
と定義できるほうが楽です。したがって、上のようなことをやるならCよりC++の
ほうが向いていると思います。
ということはわざわざOOPするのではなく、わざわざ面倒な書き方と実装方法を
取らなくても済むようにOOPLがあると考えた方が良いと思います。
で、RubyはC++のようにCに付け加えた言語ではないので、また異なる書き方がで
きるようになっているということです。

-- 
arton <artonx@yahoo.co.jp>

--------------------------------------
Get the new Internet Explorer 8 optimized for Yahoo! JAPAN
http://pr.mail.yahoo.co.jp/ie8/

In This Thread