Scala Rational對象的toString方法
前例中當Rational實例被創建之后,解釋器打印輸出“Rational@a0b0f5”。解釋器是通過調用Rational對象的toString方法獲得的這個看上去有些好玩兒的字串。缺省情況下,Rational類繼承了定義在java.lang.Object類上的toString實現,只是打印類名,一個@符號和一個十六進制數。toString的結果主要是想通過提供可以用在除錯時的語句打印,日志消息,測試錯誤報告和解釋器,除錯器輸出的信息來嘗試對程序員提供幫助。目前toString提供的結果不會特別有用,因為它沒有給出任何它被調用的Rational數值的任何線索。更有用的toString實現應該打印出Rational的分子和分母。你可以通過在Rational類里增加toString方法的方式重載:override缺省的實現,如:
51CTO編輯推薦:Scala編程語言專題
- class Rational(n: Int, d: Int) {
- override def toString = n +"/"+ d
- }
方法定義前的override修飾符標示了之前的方法定義被重載;第10章會更進一步說明。現在分數顯示得很漂亮了,所以我們去掉了前一個版本的Rational類里面的println除錯語句。你可以在解釋器里測試Rational的新行為:
- scala> val x = new Rational(1, 3)
- x: Rational = 1/3
- scala> val y = new Rational(5, 7)
- y: Rational = 5/7
【相關閱讀】