W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本篇介紹 Scala 支持的基本數(shù)據(jù)類(lèi)型,如果你是個(gè) Java 程序員,你會(huì)發(fā)現(xiàn) Java 支持的基本數(shù)據(jù)類(lèi)型,Scala 都有對(duì)應(yīng)的支持,不過(guò) Scala 的數(shù)據(jù)類(lèi)型都是對(duì)象(比如整數(shù)),這些基本類(lèi)型都可以通過(guò)隱式自動(dòng)轉(zhuǎn)換的形式支持比 Java 基本數(shù)據(jù)類(lèi)型更多的方法。隱式自動(dòng)轉(zhuǎn)換的概念將在后面介紹,簡(jiǎn)單的說(shuō)就是可以為基本類(lèi)型提供擴(kuò)展,比如如果調(diào)用 (-1).abs() ,Scala 發(fā)現(xiàn)基本類(lèi)型 Int 沒(méi)有提供 abs()方法,但可以發(fā)現(xiàn)系統(tǒng)提供了從 Int 類(lèi)型轉(zhuǎn)換為 RichInt 的隱式自動(dòng)轉(zhuǎn)換,而 RichInt 具有 abs 方法,那么 Scala 就自動(dòng)將 1 轉(zhuǎn)換為 RichInt 類(lèi)型,然后調(diào)用 RichInt 的 abs 方法。
Scala 的基本數(shù)據(jù)類(lèi)型有: Byte,Short,Int,Long 和 Char (這些成為整數(shù)類(lèi)型)。整數(shù)類(lèi)型加上 Float 和 Double 成為數(shù)值類(lèi)型。此外還有 String 類(lèi)型,除 String 類(lèi)型在 java.lang 包中定義,其它的類(lèi)型都定義在包 scala 中。比如 Int 的全名為 scala.Int。實(shí)際上 Scala 運(yùn)行環(huán)境自動(dòng)會(huì)載入包 scala 和 java.lang 中定義的數(shù)據(jù)類(lèi)型,你可以使用直接使用 Int,Short,String 而無(wú)需再引入包或是使用全稱(chēng)。
下面的例子給出了這些基本數(shù)據(jù)類(lèi)型的字面量用法,由于 Scala 支持?jǐn)?shù)據(jù)類(lèi)型推斷,你在定義變量時(shí)多數(shù)可以不指明數(shù)據(jù)類(lèi)型,而是由 Scala 運(yùn)行環(huán)境自動(dòng)給出變量的數(shù)據(jù)類(lèi)型:
Welcome to Scala version 2.11.0-M5 (OpenJDK 64-Bit Server VM, Java 1.7.0_25).
Type in expressions to have them evaluated.
Type :help for more information.
scala> var hex=0x5
hex: Int = 5
scala> var hex2=0x00ff
hex2: Int = 255
scala> val prog=0xcafebabel
prog: Long = 3405691582
scala> val littler:Byte= 38
littler: Byte = 38
scala> val big=1.23232
big: Double = 1.23232
scala> val a='A'
a: Char = A
scala> val f ='\u0041'
f: Char = A
scala> val hello="hello"
hello: String = hello
scala> val longString=""" Welcome to Ultamix 3000. Type "Help" for help."""
longString: String = " Welcome to Ultamix 3000. Type "Help" for help."
scala> val bool=true
bool: Boolean = true
scala>
Scala的基本數(shù)據(jù)類(lèi)型的字面量也支持方法(這點(diǎn)和 Java 不同,Scala 中所有的數(shù)值字面量也是對(duì)象),比如:
scala> (-2.7).abs
res3: Double = 2.7
scala> -2.7 abs
warning: there were 1 feature warning(s); re-run with -feature for details
res4: Double = 2.7
scala> 0 max 5
res5: Int = 5
scala> 4 to 6
res6: scala.collection.immutable.Range.Inclusive = Range(4, 5, 6)
這些方法其實(shí)是對(duì)于數(shù)據(jù)類(lèi)型的 Rich 類(lèi)型的方法,Rich 類(lèi)型將在后面再做詳細(xì)介紹。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: