前回 は、数字を区切るためのインスタンス・メソッドを作成した。
今回はこのクラス
Price
に、コンストラクタと比較演算メソッドを、追加しよう。Price.new
の引数として、文字列、または、整数をとるものとする。オープンクラス を使って、クラスに機能を追加した。
class Price
public
include Comparable
#Constructer
#
def initialize( p_ )
@val_orig = p_.to_s;
@val_s_wo_d = del_digit_delimiter( "#{@val_orig}" );
@val_s_w_d = add_digit_delimiter( @val_s_wo_d );
@val_i = @val_s_wo_d.to_i;
end
def <=>(other)
self.val_i <=> other.val_i;
end
end
コンストラクタ:
initialize
では、4種類のインスタンス変数: val_orig
, val_s_wo_d
, val_s_w_d
, val_i
; が生成される。
それぞれ、オリジナルの値、桁区切りなしの値、桁区切りありの値、数値変換時の値、となる。
インスタンス・メソッド:
<=>
は、クラス Price
のオブジェクト同士の大小比較を行うために、定義した[1]。References:
- [1] 『プログラミングRuby 第2版 言語編』; ‘Mixin’, p.101
0 件のコメント:
コメントを投稿
何かありましたら、どうぞ: