我开始学习ruby,此刻我了解了如何创建类对象,以及如何编写非常简单的IF..ELSE语句。但是如何用IF..ELSE语句正确编写def? 请提供有关如何正确编写建议的帮助?
#I can write simple statement like this
number = 1
if number == 1
number += 1
puts "the number is #{number}"
else
puts "number is more then 2"
end
#But then i want to write something like this
class Maths
def initialize(number_id)
@number = number_id
end
def numberdata()
if @number == 1
@number +=1
puts "the number is #@number"
else
puts "number is greater than 3"
end
end
end
classob5 = Maths.new("1")
classob5.numberdata()
我希望第二部分的输出为“数字为2”,但实际输出结果为“数字大于3” 请提供有关如何正确编写的建议。
答案 0 :(得分:2)
这里的错误是Maths
类是由String
而不是Integer
行中的classob5 = Maths.new("1")
发起的。
因此,发生的情况是,在调用numberdata()
时,它将值[1](@number
)的String
与1
(即{{ 1}}。因此,Integer
条件失败,因为它们不相等,并且您可以从if
条件中得到结果。
使用else
是绝对正确的。该类对象只需要实例化为if..else
。