这个错误是什么意思?我无法让转换工作。英里假设转换为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)
答案 0 :(得分:1)
它的意思是:Distance
类没有方法+
,因此Ruby不知道如何添加d1
和d2
。 Ruby无法为您实现该方法,您必须先自行编程才能添加实例。
答案 1 :(得分:0)
d1 + d2
相当于:
d1.+(d2)
这只是一个方法调用。由于+
类中未定义Distance
方法,因此会出现错误。