- Scala編程(第5版)
- (德)馬丁·奧德斯基等
- 564字
- 2022-05-06 15:51:43
6.1 Rational類的規格定義
有理數(rational number)是可以用分數n/d表示的數,其中n和d是整數,但d不能為零。n稱作分子(numerator),而d稱作分母(denominator)。典型的有理數如:1/2、2/3、112/239、2/1等。與浮點數相比,有理數的優勢是小數可被精確展現,而不會被舍入或取近似值。
我們在本章要設計的類將對有理數的各項行為進行建模,包括允許有理數進行加、減、乘、除運算。要將兩個有理數相加,首先要得到一個公分母,然后將分子相加。例如,要計算1/2 + 2/3,需要將左操作元的分子和分母分別乘以3,將右操作元的分子和分母分別乘以2,得到3/6 + 4/6,再將兩個分子相加,得到7/6。要將兩個有理數相乘,可以簡單地將它們的分子和分母相乘。因此,1/2 * 2/5得到2/10,這個結果可以被更緊湊地表示為“正規化”(normalized)的1/5。有理數的除法是將右操作元的分子和分母對調,然后做乘法。例如,1/2 / 3/5等于1/2 * 5/3,即5/6。
另一個(可能比較細微的)觀察是,數學中有理數沒有可變的狀態。我們可以將一個有理數與另一個有理數相加,但結果是一個新的有理數,原始的有理數并不會“改變”。我們在本章要設計的不可變的Rational類也滿足這個屬性。每一個有理數都可由一個Rational對象來表示。當你把兩個Rational對象相加時,將會創建一個新的Rational對象來持有它們的和。
你會在本章看到,Scala提供給用戶來編寫類庫的一些手段。它們就像是語言原生支持的一樣。讀完本章后,你將可以像下面這樣使用Rational類:

推薦閱讀
- Spring 5.0 Microservices(Second Edition)
- 兩周自制腳本語言
- R語言游戲數據分析與挖掘
- Django Design Patterns and Best Practices
- Java應用開發技術實例教程
- Oracle 18c 必須掌握的新特性:管理與實戰
- 程序設計基礎教程:C語言
- Terraform:多云、混合云環境下實現基礎設施即代碼(第2版)
- Learning Splunk Web Framework
- Head First Kotlin程序設計
- Visual C++程序設計全程指南
- 零基礎PHP從入門到精通
- Java EE 7 Development with WildFly
- Getting Started with the Lazarus IDE
- The Python Apprentice