-1

このエラーはどういう意味ですか? 変換を機能させることができません。マイルは km に変換され、km はマイルに変換されます。計算を間違えたのではないかと思います。通話がどのようにクラスに接続されていないのかわかりません...ありがとう

コード

class Distance
@@value
@@unit


def initialize(value, unit)
    @@value = value
    @@unit = unit

end

def convert_miles_to_km(miles)
    return miles * 0.621371 
end

def convert_km_to_miles(km)
    return km * 1.60934
end


end

puts "Adding:"
d1 = Distance.new(1, "m")
d2 = Distance.new(1, "k")

puts d1 + d2

d1 = Distance.new(2, "M")
d2 = Distance.new(2, "m")

d3 = d1 + d2
puts d3
puts d3.value
puts d3.unit

出力は次のようになります。

Adding:
1.621371 Miles
4 Miles
4
m

スクリプトを実行すると、エラーが発生します

C:\Users\Phillip\Desktop\Distance>ruby distance.rb
distance.rb:26:in `<main>': undefined method `+' for #<Distance:0x19c6008 @distance=1> (NoMethodError)
4

2 に答える 2

1

つまり、このDistanceクラスには method がない+ため、Ruby はd1andを追加する方法を知りませんd2。Ruby はメソッドを実装できません。インスタンスを追加する前に、自分でプログラムする必要があります。

于 2013-11-13T18:04:51.400 に答える
0
d1 + d2

次と同等です。

d1.+(d2)

単純なメソッド呼び出しです。メソッドがクラスで+定義されていないため、エラーが発生します。Distance

于 2013-11-13T18:04:04.147 に答える