【问题标题】:How to use a method to populate a Hash in Ruby?如何使用一种方法在 Ruby 中填充哈希?
【发布时间】:2014-09-17 16:16:44
【问题描述】:

我正在处理一个要求我创建 2 个类的挑战:

Bank
Person

我的目标是能够让BankPerson 相互通信。在我必须使用以下方法操纵帐户余额之前,我一直在努力。但我在创建银行帐户以使用帖子底部提供的测试输入代码/输出时遇到问题。

我决定初始化一个哈希实例

@account_balances = {}

我的目标是每次使用 Bank 类方法时,将余额为零的银行帐户添加到哈希中

open_account(customer)

有人可以帮忙吗?我可能用 Hash 的想法找错了树……但我尝试了其他想法,但它们不能正常工作。我想如果我可以创建哈希来存储个人账户,我可以使用存款/取款方法来操作它们。

银行类

【问题讨论】:

  • 调用Class.new 是非常不规则的,仅用于动态组合类的情况。更好的是声明你的类,如class Person,如有必要,你可以在该块内定义任何方法。看起来你已经在这里声明了两次Bank,这应该会产生错误。
  • 我删除了那个奇怪的 Bank = Class.new 东西,不知道那是怎么回事。
  • @tadman 奇怪的是,OP 正在这样做;不知道他们的意图是什么,所以我把它编辑了。
  • 感谢 Dave...原谅我是个新手...到目前为止,代码在 irb 中一直有效,所以我没有注意到这个问题。

标签: ruby class methods hash


【解决方案1】:

内部初始化:

@bank = bank
@customers = {}
puts "#{@bank} bank was just created."

然后在open_account(customer)里面

@customers[customer] = 0
puts "#{customer.name}, thanks for opening an account at #{@bank}!"

【讨论】:

  • 好的,谢谢....我会解决这个问题的。我希望这行得通。这个数组/哈希的一个主要部分是我需要一个帐户名,并且必须将其设置为零......然后可以使用存款/取款方法进行调整
  • 对不起,我看错了 - 试试这个。 @customers 现在是一个散列,其中客户对象作为键,余额作为关联值
  • 这是我来自 IRB 2.0.0-p451 :154 &gt; chase.customers => {#<0x007f9c913fbf08>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
  • 2013-07-12
  • 2012-06-12
相关资源
最近更新 更多