developer's diary

最近はc#のエントリが多いです

初めて知った <=> UFO演算子。

ruby-listのMLで若干話題*1になっていました。<=>(UFO演算子)

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/47414

UFO演算子って何?

A <=> B とすると、
A < Bならば負の数を返し、
A > Bならば正の数を返し、
AとBが等しければ0を返します。

UFO演算子はてんびんみたいなもの

Comparableモジュール

比較演算を許すクラスのための Mix-in。このモジュールをインクルー ドするクラスは、基本的な比較演算子である <=> 演算子を定義してい る必要があります。他の比較演算子はその定義を利用して派生できます。

module Comparable

Comparableを入れるとどうなるか。

下記のようなことができる。

ary = []
ary << Book.new(.....)
ary << Book.new(.....)
ary << Book.new(.....)
ary.sort.each{ |book|
【ここで本の情報を出力】
}

OOPってすごい。。

*1:Gmailのスレッドがわーってなってました