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