轨道
/
Ruby
Ruby
/
练习
/
储蓄账户
储蓄账户

储蓄账户

学习练习

简介

模块

到目前为止,你见过的所有练习都用到了类。有时我们并不需要创建带状态对象的那份开销,于是改用module。

模块和类非常相似(事实上,在对象层级中,Module是Class的父级),主要区别在于:我们用的不是实例方法,而是类方法。类方法以self.开头,可以直接在模块上调用。

例如:

module Speaker
  def self.echo(something)
    "#{something} ... #{something}"
  end
end

Speaker.echo("Hello")   #=> "Hello ... Hello"

循环

在 Ruby 中写循环有好几种方式,不过一般来说,我们更常使用枚举而不是循环,所以最常见的循环大概就是while循环:

counter = 0

while counter < 5
  counter += 1
end

你也可以使用与之对应的until

counter = 0

until counter == 5
  counter += 1
end

说明

在本练习中,你将处理储蓄账户。每年,储蓄账户的余额都会根据利率更新。银行给出的利率取决于账户中的金额(即其余额):

  • 余额为非负数且小于1000美元时,利率为 0.5%。
  • 余额为正数,且大于或等于1000美元、小于5000美元时,利率为 1.621%。
  • 余额为正数且大于或等于5000美元时,利率为 2.475%。
  • 余额为负数时,利率为 3.213%(会产生负利息)。

你有三个任务,每个任务都会涉及余额及其利率。

1. 计算利率

实现 SavingsAccount.interest_rate 方法,根据给定的余额计算利率:

SavingsAccount.interest_rate(200.75)
#=> 0.5

注意,返回值是 Float 的实例。

2. 计算年度余额更新

实现 SavingsAccount.annual_balance_update 方法,在考虑利率的情况下计算年度余额更新:

SavingsAccount.annual_balance_update(200.75)
#=> 201.75375

注意,返回值是 Float 的实例。

3. 计算达到目标余额所需的年数

实现 SavingsAccount.years_before_desired_balance 方法,计算达到目标余额所需的最少年数:

SavingsAccount.years_before_desired_balance(200.75, 214.88)
#=> 14

注意,返回值是 Integer 的实例。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Ruby Exercism

准备好开始 储蓄账户 了吗?

注册 Exercism,借助 21 个概念121 个练习 和真人导师指导,学习并掌握 Ruby,全部免费。