官术网_书友最值得收藏!

第3章 數值和日期

本章涵蓋了Scala中的數值類型,以及Java 8引入的日期和時間API的使用方法。

在Scala中,Byte、Short、Int、Long和Char類型被稱為整數類型,因為它們由整數或數字表示。整數類型以及Double和Float組成了Scala中的數值類型。與被稱為“非數值類型”的Unit和Boolean一樣,這些數值類型都繼承AnyVal特質(trait)。在Scala頁面(https://oreil.ly/C7Id7)關于統一類型的討論中,這9種類型都被稱為預定義值類型,并且不能為空。

預定義值類型與AnyVal和Any(以及Nothing)的關系如圖3-1所示,其中:

圖3-1:所有預定義的數值類型都繼承自AnyVal

·所有的數值類型都繼承自AnyVal。

·Scala類層次結構中的所有其他類型都繼承自AnyRef。

如表3-1所示,Scala的數值類型與Java中對應的基本類型有著相同的數值范圍。

表3-1:Scala中數值類型的數值范圍

除此之外,Boolean可以為true或者false。

如果你想知道數據范圍的精確值,但手頭沒有這本書,可以在Scala REPL中查看:

除了這些基本的數值類型之外,BigInt和BigDecimal在本章后續部分都會講到。

數值常量中的下劃線

Scala 2.13中引入了在數值常量中使用下劃線的功能:

帶下劃線的數值常量可以在任何常用的地方使用:

目前有一個地方不能使用帶下劃線的數值常量,就是當把String轉換為數值類型時:

復數

除了Scala自帶的math類庫,如果你需要其他更強大的數學運算能力,可以了解一下Spire項目(https://typelevel.org/spire),它包含了Rational、Complex和Real等更多的數學概念。

日期和時間

本章最后幾節將介紹Java 8引入的日期和時間API,并展示如何使用LocalDate、LocalTime、LocalDateTime、Instant和ZonedDateTime等新類。

主站蜘蛛池模板: 延川县| 岑溪市| 建水县| 兴宁市| 柳河县| 恩施市| 武隆县| 利辛县| 沂水县| 韶关市| 婺源县| 开封市| 朝阳市| 锡林郭勒盟| 双柏县| 崇阳县| 佛冈县| 贺州市| 兴山县| 信丰县| 延庆县| 海原县| 石林| 英山县| 介休市| 岳阳县| 石家庄市| 兴义市| 叶城县| 绥芬河市| 田林县| 鱼台县| 申扎县| 安义县| 灵台县| 平山县| 西乌珠穆沁旗| 星子县| 平潭县| 兰考县| 襄城县|