中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇-創(chuàng)新互聯(lián)

好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇了解Scala

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,鄒城企業(yè)網(wǎng)站建設,鄒城品牌網(wǎng)站建設,網(wǎng)站定制,鄒城網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,鄒城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1.1?什么是?Scala

Scala 是 Scalable Language 的簡寫,是一門多范式的編程語言。

Scala設計的初衷是要集成面向?qū)ο缶幊毯秃瘮?shù)式編程的各種特性。Scala運行于Java平臺(Java虛擬機),并兼容現(xiàn)有的Java程序。

函數(shù)式編程兩種理念:就是一種抽象程度很高的編程范式,純粹的函數(shù)式編程語言編寫的函數(shù)沒有變量,因此,任意一個函數(shù),只要輸入是確定的,輸出就是確定的,這種純函數(shù)我們稱之為沒有副作用。而允許使用變量的程序設計語言,由于函數(shù)內(nèi)部的變量狀態(tài)不確定,同樣的輸入,可能得到不同的輸出,因此,這種函數(shù)是有副作用的。

函數(shù)式編程的一個特點就是,函數(shù)也是值,同允許把函數(shù)本身作為參數(shù)傳入另一個函數(shù),還允許返回一個函數(shù)!

好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇

1.2 Scala特點

Scala 是面向?qū)ο蟮?/strong>

Scala是一個純面向?qū)ο蟮恼Z言,所有的值都是對象,類和對象行為用類和特質(zhì)來描述.

Scala 是函數(shù)式的

Scala中函數(shù)是高等公民,所有函數(shù)都是值.

Scala是靜態(tài)類型的

好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇

Scala 是可擴展的

1.3?為什么要學Scala

1.優(yōu)雅:這是框架設計師第一個要考慮的問題,框架的用戶是應用開發(fā)程序員,API是否優(yōu)雅直接影響用戶體驗。

2.速度快:Scala語言表達能力強,一行代碼抵得上Java多行,開發(fā)速度快;Scala是靜態(tài)編譯的,所以和JRuby,Groovy比起來速度會快很多。

3.能融合到Hadoop生態(tài)圈:Hadoop現(xiàn)在是大數(shù)據(jù)事實標準,Spark并不是要取代Hadoop,而是要完善Hadoop生態(tài)。JVM語言大部分可能會想到Java,但Java做出來的API太丑,或者想實現(xiàn)一個優(yōu)雅的API太費勁。

?好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇

2?環(huán)境準備

2.1 JDK安裝

因為Scala是運行在JVM平臺上的,所以安裝Scala之前要安裝JDK

2.2 Scala安裝

下載Scala然后解壓Scala到指定目錄

tar -zxvf scala-2.10.6.tgz -C /usr/java

配置環(huán)境變量,將scala加入到PATH中

vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_45

export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.10.6/bin

2.3. Scala開發(fā)工具安裝

目前Scala的開發(fā)工具主要有兩種:Eclipse和IDEA,這兩個開發(fā)工具都有相應的Scala插件,如果使用Eclipse,直接到Scala官網(wǎng)下載即可。

由于IDEA的Scala插件更優(yōu)秀,大多數(shù)Scala程序員都選擇IDEA,可以到下載社區(qū)免費版,點擊下一步安裝即可,安裝時如果有網(wǎng)絡可以選擇在線安裝Scala插件。這里我們使用離線安裝Scala插件:

1.安裝IDEA,點擊下一步即可。由于我們離線安裝插件,所以點擊Skip All and Set Defaul

2.下載IEDA的scala插件

3.安裝Scala插件:File -> settings -> Plugins -> Install plugin from disk -> 選擇Scala插件 -> OK -> 重啟IDEA

好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇

3. Scala基礎

3.1.?值和變量

使用var 聲明一個變量。

  • scala語言是強類型語言。

  • var修飾的變量,內(nèi)容和引用都可變

使用val聲明一個常量或值

  • val修飾的變量是不可變的,注意不可變的不是內(nèi)容,而是引用;

  • val修飾的變量,相當于Java中final修飾的變量;

  • 只有val修飾的變量才能被lazy修飾;使用lazy定義變量后,只有在調(diào)用該變量時才會實例化這個變量的值。而且惰性變量只能是不可變變量;

//變量定義方式
var?a:int?= 1
var?aa = 1
val?aaa:Int = 3
val?aaaa = 4
lazy?val?aaaaa = 4

官方推薦使用val。

2.val和var區(qū)別示意:

可以使用數(shù)組,更容易懂

class?A(n: Int) {
?var?value = n
}

class?B(n: Int) {
?val?value =?new?A(n)
}

object?Test {
?def?main(args: Array[String]) {
?val?x =?new?B(5)
?x =?new?B(6)?//?錯誤?
?x.value?=?new?A(6)?//?錯誤?
?x.value.value?= 6?//?正常
?}
}

3.lazy

類似方法,先聲明,后調(diào)用

好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇

4.val or var

在val和var均可的條件下,官方推薦使用val

3.2.?常用類型

Scala和Java一樣,有7種數(shù)值類型Byte、Char、Short、Int、Long、Float、Double和一個Boolean類型,

和Java不同的是 ,Scala沒有基本類型與包裝類型之分,這些類型都是類,有自己的屬性和方法。

相當于Java的包裝類;

1.toString()

1.to (10)

scala類型層級關系:

scala中所有的值都有類型,包括數(shù)值和函數(shù).

好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇

scala 類型轉(zhuǎn)換:

好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇

val?x: Long = 987654321
????val?y: Float = x ?// 9.8765434E8 (note that some precision is lost in this case)

????val?face: Char = '?'
????val?number: Int = face ?// 9786

3.3.?操作符

Scala中沒有操作符,只是以操作符的格式去進行方法調(diào)用。

//數(shù)學運算符
+、-、*?、/、%
//關系操作符
> < >= <= !
//邏輯操作符
&& ||
//位操作符
| & ^ ~
//比較對象是否相等
==?!=

注意:

a + b 等價于 a.+(b)

Scala沒有++,-- 可以用+=,-=代替

操作符都是方法的重載,是方法的調(diào)用

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

文章名稱:好程序員大數(shù)據(jù)學習路線分享Scala系列之基礎篇-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.rwnh.cn/article28/cepojp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司、App開發(fā)、關鍵詞優(yōu)化、企業(yè)建站微信小程序、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

南城县| 元江| 莱州市| 道孚县| 靖宇县| 沙河市| 封丘县| 呼玛县| 武夷山市| 永吉县| 郸城县| 牙克石市| 包头市| 托里县| 岳阳市| 万盛区| 南部县| 玉溪市| 和平区| 富川| 浪卡子县| 逊克县| 二连浩特市| 余姚市| 泰和县| 石城县| 慈利县| 柘城县| 泸州市| 区。| 南雄市| 开封市| 大城县| 隆化县| 炉霍县| 周至县| 湖南省| 塔城市| 武夷山市| 荆门市| 河池市|