Ruby OOP - 实例方法
Ruby OOP - Instance Method
Ruby OOP 初学者。尝试构建一个简单的自动售货机代码。
class VendingMachine
# TODO: add relevant getter/setter to this class to make the scenarios work properly.
attr_reader :snack_price_cents, :user_balance_cents
attr_accessor :snack_count
def initialize(snack_price_cents, snack_count)
@user_balance_cents = 0
@snack_count = snack_count
@snack_price_cents = snack_price_cents
end
def insert_coin(input_cents)
@user_balance_cents = user_balance_cents + input_cents if input_cents
end
def buy_snack
if snack_count.zero? || user_balance_cents.zero?
@snack_count = snack_count
else
@snack_count = snack_count - 1
@user_balance_cents = user_balance_cents - snack_price_cents
end
end
end
我想了解当用户按下购买零食的按钮时 snack_count
、user_balance_cents
和 snack_price_cents
会发生什么?
似乎一切正常,除了 user_balance_cents
但我得到:
should not let you buy a snack if you didn't insert enough money (error path) (FAILED - 1)"
错误。有帮助吗?
我猜你的错误是你正在检查 user_balance_cents 不为零,但你至少没有检查 snack_price_cents.
即如果我投入 10c 并尝试购买 50c 的零食,它会给我。
Ruby OOP 初学者。尝试构建一个简单的自动售货机代码。
class VendingMachine
# TODO: add relevant getter/setter to this class to make the scenarios work properly.
attr_reader :snack_price_cents, :user_balance_cents
attr_accessor :snack_count
def initialize(snack_price_cents, snack_count)
@user_balance_cents = 0
@snack_count = snack_count
@snack_price_cents = snack_price_cents
end
def insert_coin(input_cents)
@user_balance_cents = user_balance_cents + input_cents if input_cents
end
def buy_snack
if snack_count.zero? || user_balance_cents.zero?
@snack_count = snack_count
else
@snack_count = snack_count - 1
@user_balance_cents = user_balance_cents - snack_price_cents
end
end
end
我想了解当用户按下购买零食的按钮时 snack_count
、user_balance_cents
和 snack_price_cents
会发生什么?
似乎一切正常,除了 user_balance_cents
但我得到:
should not let you buy a snack if you didn't insert enough money (error path) (FAILED - 1)"
错误。有帮助吗?
我猜你的错误是你正在检查 user_balance_cents 不为零,但你至少没有检查 snack_price_cents.
即如果我投入 10c 并尝试购买 50c 的零食,它会给我。