簡(jiǎn)介
??Scala的基本數(shù)據(jù)類(lèi)型與Java中的基本數(shù)據(jù)類(lèi)型是一一對(duì)應(yīng)的硬萍,不同的是Scala的基本數(shù)據(jù)類(lèi)型頭字母必須大寫(xiě)摘能。
類(lèi)型變量定義
整數(shù)類(lèi)型變量定義
//16進(jìn)制定義法
scala> val x=0x29
x: Int = 41
//十進(jìn)制定義法
scala> val x=41
x: Int = 41
//八進(jìn)制定義法
scala> 051
res0: Int = 41
浮點(diǎn)類(lèi)型變量定義
//Double類(lèi)型定義,直接輸入浮點(diǎn)數(shù)腔彰,編譯器會(huì)將其自動(dòng)推斷為Double類(lèi)型
scala> val doubleNumber=3.141529
doubleNumber: Double = 3.141529
//要定義Float類(lèi)型浮點(diǎn)數(shù)诵盼,需要在浮點(diǎn)數(shù)后面加F或f
scala> val floatNumber=3.141529F
floatNumber: Float = 3.141529
scala> val floatNumber=3.141529f
floatNumber: Float = 3.141529
//浮點(diǎn)類(lèi)型的變量還可以采用指數(shù)表示法
//浮點(diǎn)數(shù)指數(shù)表示法,e也可以是大寫(xiě)E,0.314529e1與0.314529*10等同
scala> val floatNumber=0.314529e1
floatNumber: Double = 3.14529
字符變量定義
//字符定義绊袋,用''將字符包裹
scala> var charLiteral='A'
charLiteral: Char = A
字符串變量定義
//字符串變量用""包裹
scala> val helloWorld="Hello World"
helloWorld: String = Hello World
//要定義"Hello World"叠蝇,可以加入轉(zhuǎn)義符\
scala> val helloWorldDoubleQuote="\"Hello World\""
helloWorldDoubleQuote: String = "Hello World"
//如果希望能夠原樣輸出字符串中的內(nèi)容璃岳,則用三個(gè)引號(hào)"""將字符串包裹起來(lái),如
scala> println(""" hello cruel world, \n \\\\ \b \\, I am " experienced" programmer""")
hello cruel world, \n \\\\ \b \\, I am " experienced" programmer
布爾類(lèi)型定義
scala> var x=true
x: Boolean = true
類(lèi)型操作
算術(shù)運(yùn)算
//整數(shù)求和,編譯器會(huì)將其轉(zhuǎn)換為(1).+(2)執(zhí)行
scala> var sumVlaue=1+2
sumVlaue: Int = 3
//前一語(yǔ)句等同于下列語(yǔ)句
scala> var sumVlaue=(1).+(2)
sumVlaue: Int = 3
//操作符重載,編譯器會(huì)將其轉(zhuǎn)換為(1).+(2L)執(zhí)行
scala> val longSum = 1 + 2L
longSum: Long = 3
//減法
scala> 1-3
res5: Int = -2
//除法
scala> 1/3
res6: Int = 0
//取模
scala> 1%3
res7: Int = 1
//乘法
scala> 1L*3L
res8: Long = 3
//scala中可以用+ -符號(hào)來(lái)表示正負(fù)數(shù)铃慷,例如-3 +3单芜,并且可以加入到運(yùn)算符當(dāng)中
scala> var y=1+ -3
y: Int = -2
關(guān)系運(yùn)算
//>運(yùn)算符
scala> 3 > -3
res12: Boolean = true
//<運(yùn)算符
scala> 3 < -3
res13: Boolean = false
//<=運(yùn)算符
scala> 3 <= -3
res14: Boolean = false
//<=運(yùn)算符
scala> 3 <=3
res15: Boolean = true
//<=運(yùn)算符
scala> !(3<= -3)
res16: Boolean = true
邏輯運(yùn)算
//邏輯與:&&
scala> val bool=true
bool: Boolean = true
scala> bool && bool
res17: Boolean = true
//邏輯或:||
scala> bool || bool
res18: Boolean = true
scala> bool || !bool
res20: Boolean = true
位運(yùn)算
// 00000001
// 00000010
// 00000000
scala> 1 & 2
res24: Int = 0
// 00000001
// 00000010
// 00000011
scala> 1 | 2
res24: Int = 3
// 00000001
// 00000011
// 00000010
scala> 1 ^ 3
res24: Int =2
//00000001
//11111110
scala> ~1
res24: Int =-2
//左移位(shift left)
//00000110
//00001100
scala> 6 << 1
res29: Int = 12
//右移位(shift left)
//00000110
//00000011
scala> 6 >> 1
res28: Int = 3
//無(wú)符號(hào)右移(shift left)
//11111111111111111111111111111111
//00000000000000000000000000000001
scala> -1 >>> 31
res32: Int = 1
對(duì)象比較
scala> 1==1
res34: Boolean = true
scala> 1==1.0
res35: Boolean = true
scala> val x="Hello"
x: String = Hello
scala> val y="Hello"
y: String = Hello
//Scala中的對(duì)象比較不同于Java中的對(duì)象比較
//Scala基于內(nèi)容比較,而java中比較的是引用犁柜,進(jìn)行內(nèi)容比較時(shí)須定義比較方法
scala> x==y
res36: Boolean = true
運(yùn)算符優(yōu)先級(jí)
??運(yùn)算符優(yōu)先級(jí)如下圖所示洲鸠,* / %優(yōu)先級(jí)最高,依次類(lèi)推馋缅。