2

元の数値を取得するにはどうすればよいですか? たとえば、次のように入力すると:

r = Rational(2, 10)
# (1/5)

2 と 10 は 1 と 5 に変更されます。

r.numerator   # 1
r.denominator # 5

Rational class( ) のインスタンスから 2 と 10 を取得するにはどうすればよいrですか?

Rational クラスにモンキー パッチを適用し、新しいメソッド ( Rational_o)を作成しました。

def Rational_o *args
  x, y = args
  r = Rational *args
  r.x = x
  r.y = y
  r
end

class Rational
  attr_accessor :x, :y
end

動作しますが、元の x & y が格納される組み込みメソッドまたは変数はありますか?

4

3 に答える 3

2

いいえ、やりたいことを実行する組み込みのプライベートまたはパブリック メソッドはありません。

元の数値をインスタンス メソッド内に保存したい場合は、モンキー パッチが間違いなくその方法の 1 つです。

実際、メソッドRational(a,b)は class の外側で定義されたインスタンス メソッドでありRational、一種の likeArray()およびString()メソッドです。

于 2013-12-21T10:24:04.700 に答える