我一直在研究Jay McGavren的Head First Ruby。我试图直接从书中运行一段代码,该代码应该给出以下输出:
Name: Jane Doe
Pay This Week: $1917.18
代码为:
class Employee
attr_reader :name
def name=(name)
# Code to validate and set @name
end
def print_name
puts "Name: #{name}"
end
end
class SalariedEmployee < Employee
attr_reader :salary
def salary=(salary)
# Code to validate and set @salary
end
def print_pay_stub
print_name
pay_for_period = (salary / 365.0) * 14
formatted_pay = format("$%.2f", pay_for_period)
puts "Pay This Period: #{formatted_pay}"
end
end
salaried_employee = SalariedEmployee.new
salaried_employee.name = "Jane Doe"
salaried_employee.salary = 50000
salaried_employee.print_pay_stub
但它似乎不起作用。我得到这个错误:
in `print_pay_stub': undefined method `/' for nil:NilClass (NoMethodError)
有人能启发我吗?
您应该编写逻辑来设置@salary变量:
def salary=(salary)
@salary = salary
end