Ruby格式化輸出與拋出異常

題目:

定義一個類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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章