溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Scala有什么用

發(fā)布時(shí)間:2021-12-04 09:11:11 來(lái)源:億速云 閱讀:125 作者:小新 欄目:云計(jì)算

小編給大家分享一下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è)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI