【问题标题】:Parent in ruby argument errorruby 参数错误中的父级
【发布时间】:2017-03-27 17:04:56
【问题描述】:

我很难初始化参数 B

class Checking < Account
  def initialize
    super
  end

  def balance
    @balance = principal * (1 + interest_rate / 365) ** 365
  end
end

class Interest_rate
  def interest_rate
    @@interest_rate = 0.003
  end
end

【问题讨论】:

  • 什么是Account
  • 看到您的课程Account 会很有帮助。在您的编辑中,请更具体地说明您提到的错误。错误消息是什么?在哪一行引发了异常?
  • @AndrewLi 我已经更新了账号
  • @SarahKim 您的超类初始化程序需要一个参数,因此您的超级调用也必须提供该参数
  • 有趣。我看到这个问题来了,已经回答了yesterday。好像他们在做同样的作业。

标签: ruby inheritance parent


【解决方案1】:

作为 Amadan 答案的替代方案:

def initialize
    super
end

Checking 类中的这个初始化器不仅无用,而且有害。它声明 Checking 不接受任何参数,而它显然应该接受。删除此方法,它应该可以正常工作。

(如果没有定义的初始化器,将使用来自父级的初始化器)

【讨论】:

    【解决方案2】:
    def initialize(initial_deposit)
    

    您正在定义一个零参数initialize,并委托给父级一参数initialize

    【讨论】:

    • 另外,@balance = #{@principal} * (1 + #{@interest_rate} / 365) ** 365 似乎不是有效的 Ruby 语法...
    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 2023-03-14
    • 2020-06-21
    • 2011-12-03
    • 1970-01-01
    相关资源
    最近更新 更多