Ruby 奇怪的红宝石行为。有人能解释一下吗?
我在玩ruby解释器,然后事情发生了。怎么做Ruby 奇怪的红宝石行为。有人能解释一下吗?,ruby,Ruby,我在玩ruby解释器,然后事情发生了。怎么做 class Expe attr_reader :i def yo @i = 3 end end a = Expe.new puts a.yo.i #=> 0+3i 我想你正在做的是把a.yo转换成一个复数。 如果您输入一个则输入一个.yo.i.class它将返回Complex 我认为你应该做的是: a = Expe.new puts a.yo #=> 3 puts a.i #=> 3 (returni
class Expe
attr_reader :i
def yo
@i = 3
end
end
a = Expe.new
puts a.yo.i #=> 0+3i
我想你正在做的是把a.yo转换成一个复数。 如果您输入一个
则输入一个.yo.i.class
它将返回Complex
我认为你应该做的是:
a = Expe.new
puts a.yo #=> 3
puts a.i #=> 3 (returning the 'i' attribute of a)
只需对整数调用.i
函数,就可以清楚地看到它
puts 3.i #=> 0+3i (convert integer 3 to complex)
您在
yo
上调用方法i
,该方法返回一个数值。在Numeric
上定义了i
方法,该方法返回相应的虚数。不适用于复数
见: