- Scala編程(第5版)
- (德)馬丁·奧德斯基等
- 741字
- 2022-05-06 15:51:48
6.14 結語
在本章,你看到了有關Scala類的更多內容,了解了如何給類添加參數,如何定義多個構造方法,如何像定義方法那樣定義操作符,以及如何定制化類以讓其用起來更自然。最為重要的一點可能是,你應該已經意識到在Scala中定義和使用不可變對象是很自然的一種編程方式。
雖然本章展示的最后一個版本的Rational類滿足了章節開始時設定的需求,但是它仍然有提升空間。事實上,在本書后面的章節還會重新回顧這個示例。比如,在第8章,你將了解到如何重寫equals和hashCode方法,讓Rational類可以更好地參與==的比較或者被存入哈希表的場景;在第22章,你將了解到如何把擴展方法的定義放到Rational類的伴生對象中,讓使用Rational類的程序員更容易地將它放到作用域內。
[1]require方法定義在Predef這個獨立對象中。如4.5節所講的,所有的Scala源文件都會自動引入Predef對象的成員。
[2]實際上,可以把Rational對象與自己相加,這時that會指向執行add方法調用的那個對象。但由于你可以傳入任何Rational對象到add方法中,因此編譯器仍然不允許使用that.n。
[3]你將在10.6節找到更多關于參數化字段(parametric field)的內容。該內容提供了同樣功能的代碼的簡寫方式。
[4]雖然n和d在類定義體中被使用,但是由于它們只出現在構造方法中,Scala編譯器并不會為它們生成字段,因此,對于這樣的代碼,Scala編譯器將會生成一個帶有兩個Int字段的類,且兩個字段分別是numer和denom。
[5]這種風格的標識符命名方式被稱作駝峰命名法,是因為標識符內的那些間隔出現的大寫字母就像是駱駝背上的駝峰一樣。
[6]在14.5節,你將了解到有時候可能需要完全用操作符來對樣例類命名。例如,Scala的API包含一個名稱為::的類,用于實現對List的模式匹配。
[7]更準確地說,操作符包括Unicode中的數學符號(Sm)或其他符號(So),以及ASCII碼表中除字母、數字、圓括號、方括號、花括號、單引號、雙引號、下畫線、句點、分號、逗號、反引號(back tick)之外的7位(7-bit)字符。
- Software Testing using Visual Studio 2012
- 樂學Web編程:網站制作不神秘
- Visual C++實例精通
- PyQt從入門到精通
- Python爬蟲開發與項目實戰
- 新手學Visual C# 2008程序設計
- Learning Informatica PowerCenter 10.x(Second Edition)
- Lua程序設計(第4版)
- CouchDB and PHP Web Development Beginner’s Guide
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- Linux C編程:一站式學習
- 常用工具軟件立體化教程(微課版)
- Getting Started with Python and Raspberry Pi
- 零基礎學Python編程(少兒趣味版)
- Python趣味創意編程