您好,登錄后才能下訂單哦!
小編給大家分享一下Scala有什么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
一、基礎(chǔ)
1、在Scala聲明值和變量的時(shí)候,用val聲明的值是不能改變你賦予它的內(nèi)容的,而var可以。如下:
scala>val answer = 8 answer: Int = 8
以val定義的值實(shí)際上是一個(gè)常量——無(wú)法改變其內(nèi)容。
如果我們想要聲明其值可以改變的變量,我們可以用var:
var counter = 0 counter = 1 //OK,我們可以改變一個(gè)var
2、在指定變量類(lèi)型的時(shí)候,Scala和Java有一些差別:
Java:
String greeting;
Scala:
val greeting: String = null;
3、Scala7種數(shù)值類(lèi)型:Byte、Char、Short、Int、Long、Float、Double、Boolean。
4、在Scala中,我們用方法,而不是強(qiáng)制類(lèi)型轉(zhuǎn)換,來(lái)做數(shù)值類(lèi)型之間的轉(zhuǎn)換。例如:99.44.toInt得到99,99.toChar得到'c'。和Java一樣,toString將任意的對(duì)象轉(zhuǎn)換成字符串。
要將包含了數(shù)字的字符串轉(zhuǎn)換成數(shù)值,使用toInt或者toDouble。例如,“99.44”.toDouble得到99.44。
5、Scala的算術(shù)和操作符重載時(shí)需要注意的是:Scala中的操作符實(shí)際上是方法。
比如說(shuō):
a + b
是如下方法調(diào)用的簡(jiǎn)寫(xiě):
a.+(b)
此處的+是方法名。Scala中可以使用幾乎任何符號(hào)來(lái)為方法命名,通常來(lái)說(shuō),你可以用:
a 方法 b
作為一下代碼的簡(jiǎn)寫(xiě):
a.方法(b)
這里的方法是一個(gè)帶有兩個(gè)參數(shù)的方法(一個(gè)隱式的和一個(gè)顯式的)。例如:
1.to(10)可以寫(xiě)成: 1 to 10
6、Scala還有一個(gè)顯著的不同,Scala并沒(méi)有提供++和--操作符,我們需要使用+=1或者-=1
7、在Scala中的通配符是 _ 而不像是java的 * 。例如在引入時(shí),import scala.math._
8、Scala的apply方法是一個(gè)很常用的方法。舉例來(lái)說(shuō),如果s是一個(gè)字符串,那么s(i)就是該字符串的第i個(gè)字符。而字C++中,我們會(huì)寫(xiě)成s[i],在java中,我們會(huì)寫(xiě)成s.charAt(i)。在Scala中,我們卻可以直接這樣:"Hello"(4)//這樣將會(huì)產(chǎn)出'o'。可以將這種方法看做是()操作符的重載形式,它背后實(shí)現(xiàn)原理是一個(gè)名為apply的方法。例如,在StringOps類(lèi)的文檔中,有以下方法:
def apply(n: Int):Char
其實(shí)也就是說(shuō),"Hello"(4)是如下語(yǔ)句的簡(jiǎn)寫(xiě):
"Hello".apply(4)
9、Java程序員們使用Javadoc來(lái)瀏覽Java API,Scala也有自己的版本,叫做Scaladoc。
二、控制結(jié)構(gòu)和函數(shù)
1、Scala的if/else語(yǔ)法結(jié)構(gòu)和Java或C++一樣。但是,值得注意的是在Scala中if/else表達(dá)式是有值的,這個(gè)值就是跟在if或else之后的表達(dá)式的值。如:
if (x > 0) 1 else -1
上述表達(dá)式的值是1或者-1,具體取決于x的值。甚至可以將if/else表達(dá)式的值賦值給變量:
val s = if (x > 0) 1 else -1
這和下面的語(yǔ)句效果是一樣的:
if (x > 0) s = 1 else s = -1
但是,第一種寫(xiě)法更好,因?yàn)樗脕?lái)初始化一個(gè)val,而在第二種寫(xiě)法中,s必須是var。
看完了這篇文章,相信你對(duì)“Scala有什么用”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。