Ruby格式化输出与抛出异常

本文介绍了一个名为BookInStock的Ruby类的实现,该类用于表示书籍,包含ISBN和价格属性。文章详细阐述了构造函数、异常处理及价格格式化方法的编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

定义一个类BookInStock,它表示一本书,这本书拥有ISBN编号isbn和一个用浮点数表示的价格price作为属性。构造函数应该接受ISBN号码(一个字符串)作为第一个参数,价格作为第二个参数,并且当这个ISBN号码是空字符串或者当价格小于等于0时触发ArgumentError(一个Ruby内置的异常类型)。

你要为这些属性编写恰当的getter和setter。编写一个方法price_as_string,它返回开头带有美元号、结尾带有一些0的这本书的价格,也就是说,价格20应该显示为"$20.00",价格33.8应该显示为"$33.80"。

思路:

1.Ruby中的构造函数为initialize,可以在实例对象时定义isbn和price这两个属性

2.由于isbn为空或者价格不大于0时抛出异常,要注意这个条件的判断

3.输出时对价格进行一定格式的变换,这个时候使用到了format方法

代码:

我写的代码如下,欢迎拍砖。

class BookInStock
  def initialize(isbn, price)
    @isbn = isbn
    @price = price
    if (isbn == "") || (price <= 0)
      raise(ArgumentError)
    end
  end

  def price_as_string
    p format("$%.2f", @price).to_s
  end
end

example = BookInStock.new(12345, 11)
example.price_as_string

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值