Ruby中的动态常量赋值错误

时间:2015-05-26 22:27:17

标签: ruby

我有以下ruby代码:

# calculates GST
def calculateGST(price)
GSTpaid = price * 0.15
return GSTpaid
end

puts "Enter a value: "
cost = gets.chomp.to_f

GSTpaid = calculateGST(cost)
costNoGST = cost - GSTpaid

puts """
Cost:         #{cost}
GST included: #{GSTpaid}
cost no GST:  #{costNoGST}
"""

这将在第4行返回动态常量赋值错误。 我使用python编写完全相同的程序,它运行正常,所以我很想知道为什么它在Ruby中不起作用?

虽然我在这里,有没有办法将Ruby代码片段插入帖子?我只看到HTML,CSS和JavaScript的选项,所以我继续使用JS。

1 个答案:

答案 0 :(得分:1)

你得到那个错误,因为你试图做一个常数,非常数。一旦分配,您就无法返回并进行更改。您可以重构它以仅使用局部变量而不是常量:

def calculateGST(price)
  price * 0.15
end

puts "Enter a value: "
cost = gets.chomp.to_f

gst_paid = calculateGST(cost)
cost_no_gst = cost - gst_paid

puts """
Cost:         #{cost}
GST included: #{gst_paid}
cost no GST:  #{cost_no_gst}
"""