- Scala編程(第5版)
- (德)馬丁·奧德斯基等
- 619字
- 2022-05-06 15:51:43
5.11 結語
本章想告訴你的主要是Scala的操作符其實是方法調用,以及Scala的基礎類型可以被隱式轉換成富包裝類,從而擁有更多實用的方法。下一章將向你展示什么叫作用函數式的編程風格設計對象,并相應地給出本章你看到的某些操作符的全新實現。
[1]包(package)這個概念在第2章的第1步簡單介紹過,并且會在第12章中詳細介紹。
[2]譯者注:自Scala 2.13起,Scala編譯器允許整數字面量以0開頭,但不會將它們當作八進制處理,只是簡單地忽略這些前置的0,實際效果為十進制。
[3]譯者注:原作者在這里特意用了一個雙關語,英文中“字面量”(literal)和“字面上”“確實地”“跟真的一樣”(literally)是由同一個詞派生的。
[4]重載的方法名稱相同但參數類型不同。方法重載在6.11節會有更詳細的介紹。
[5]在未來版本的Scala中,對于以非符號命名的方法(譯者注:即常規命名的方法),只有在聲明時使用了infix修飾符的情況下才允許被當作操作符。
[6]譯者注:自Scala 2.13起,使用后綴表示法需要引入scala.language.postfixOps。
[7]不過這并不是“世界末日”,還存在一個非常小的概率,即你的*p會被當作C++那樣正常編譯。
[8]按位異或方法對其操作元執行按位異或操作,對相同的位交出0,對不同的位交出1。因此0011^0101會交出0110。
[9]整數類型最左邊的位是符號位。如果最左邊的一位是1,這個數就是負數;如果是0,這個數就是正數。
[10]自動檢查并不會關心右邊是否為null,不過任何講道理的equals方法都應該對入參為null的情況返回false。
[11]至此你應該知道,Scala編譯器會把這段代碼翻譯成(bills.!*&^%~(code)).!()。(譯者注:在英文語境下,這種表示法常用于替代臟話。)
- JavaScript全程指南
- 騰訊iOS測試實踐
- HoloLens Beginner's Guide
- Offer來了:Java面試核心知識點精講(原理篇)
- Learning SAP Analytics Cloud
- Modern C++ Programming Cookbook
- Spring技術內幕:深入解析Spring架構與設計原理(第2版)
- Mockito Essentials
- App Inventor 2 Essentials
- Python Digital Forensics Cookbook
- Android熱門應用開發詳解
- Serverless工程實踐:從入門到進階
- 高性能MVVM框架的設計與實現:San
- Natural Language Processing with Python Cookbook
- Perl 6 Deep Dive