Scala语言基础详解,并在IDEA中安装Scala插件
Scala起源
Scala是一門多范式的編程語言,一種類似java的編程語言,設(shè)計(jì)初衷是實(shí)現(xiàn)可伸縮的語言、并集成面向?qū)ο缶幊毯秃瘮?shù)式編程的各種特性。
Scala語言的特點(diǎn):
Scala是面向?qū)ο蟮?/strong>:Scala是一個(gè)純面向?qū)ο笳Z言,在某種意義上來講所有數(shù)值都是對象。對象的類型和行為是由class和trait來描述的。Class的抽象可由子類化和一種靈活的基于mixin的組合機(jī)制(它可作為多重繼承的簡單替代方案)來擴(kuò)展。
Scala是函數(shù)式的: Scala還是一個(gè)函數(shù)式語言,在某種意義上來講所有函數(shù)都是數(shù)值。Scala為定義匿名函數(shù)提供了一種輕量級的語法,它支持高階(higher- order)函數(shù)、允許函數(shù)嵌套、支持柯里化(currying)。Scala的case類及其內(nèi)置支持的模式匹配模型代數(shù)類型在許多函數(shù)式編程語言中 都被使用。
Scala是靜態(tài)類型的:Scala配備了一套富有表現(xiàn)力的類型系統(tǒng),該抽象概念以一種安全的和一致的方式被使用。
Scala是可擴(kuò)展的:Scala的設(shè)計(jì)承認(rèn)了實(shí)踐事實(shí),領(lǐng)域特定應(yīng)用開發(fā)通常需要領(lǐng)域特定語言擴(kuò)展。Scala提供了一個(gè)獨(dú)特的語言組合機(jī)制,這可以更加容易地以類庫的形式增加新的語言結(jié)構(gòu):
. 任何方式可以被用作中綴(infix)或后綴(postfix)操作符 . 閉包按照所期望的類型(目標(biāo)類型)自動(dòng)地被構(gòu)造兩者結(jié)合使用可方便地定義新語句,無需擴(kuò)展語法,也無需使用類似宏的元編程工具。
Scala可與Java和.NET進(jìn)行互操作:Scala 設(shè)計(jì)時(shí)就考慮了與流行編程環(huán)境良好交互,如Java 2運(yùn)行時(shí)環(huán)境(JRE)和 .NET框架(CLR)。特別是與主流面向?qū)ο笳Z言,如Java和C#盡量無縫交互。Scala有像Java和C#一樣的編譯模型(獨(dú)立編譯,動(dòng)態(tài)裝載 類),允許訪問成千上萬的高質(zhì)量類庫。
使用Scala開發(fā)的框架
1.Spark是使用Scala編程語言開發(fā)的。開發(fā)Spark程序可以使用Java、Python和Scala,但是Scala是最優(yōu)雅的方式。
2.Kafka也是使用Scala編寫的。
3.基于JVM的語言更融入Hadoop生態(tài)圈
Scala的優(yōu)勢
■多范式編程:面向?qū)ο缶幊獭⒑瘮?shù)式編程
■表達(dá)能力強(qiáng),代碼精簡
面向?qū)ο筇匦?/strong>
■每個(gè)值都是對象
■對象的數(shù)據(jù)類型和行為由類(Class) 和特征(Trait, 類似于interface )描述
■利用特征實(shí)現(xiàn)混入式多重繼承
Scala與Java有著相同的原始數(shù)據(jù)類型
Scala數(shù)據(jù)類型層次結(jié)構(gòu)
靜態(tài)類型
Scala具備類型系統(tǒng),通過編譯時(shí)檢查,保證代碼的安全性和一致性。類型系統(tǒng)具體支持以下特性:
泛型類
協(xié)變和逆變
標(biāo)注
類型參數(shù)的上下限約束
把類別和抽象類型作為對象成員
復(fù)合類型
引用自己時(shí)顯式指定類型
視圖
多態(tài)方法
Scala環(huán)境安裝
1.scala官網(wǎng)下載安裝包安裝 https://www.scala-lang.org/download/
2.配置scala的環(huán)境變量SCALA_HOME
3.下載Scala的路徑最好和java的jdk同一路徑下,當(dāng)然必須要有jdk
4.安裝好以后到系統(tǒng)cmd窗口輸入命令scala,當(dāng)出現(xiàn)scala時(shí),說明scala安裝成功了,如下圖所示:
IDEA中安裝Scala插件
1.找到安裝Scala插件的官網(wǎng)
https://plugins.jetbrains.com/plugin/1347-scala/versions
選擇Versions,然后找和你IDEA版本一樣的scala插件。
注意:
版本一定要一致連月份也要一樣,如果沒有匹配的月份,就用下個(gè)月份的,然后點(diǎn)擊最右邊的向下箭頭,就可以下載了,下載好后記住存放位置。
2.退出到IDEA界面右下角選擇plugins,找到右上角的齒輪標(biāo)志或者(Install plugin from disk),
IDEA版本不一樣,新的版本會(huì)在右上角出現(xiàn)一個(gè)齒輪標(biāo)志,如上圖所示,我的出現(xiàn)在右下角的Install plugin from disk,點(diǎn)擊就好了。
找到你下載的版本插件選擇好點(diǎn)擊OK后,點(diǎn)擊右上角Restart Intellij IDEA,如下圖所示
等待自己重啟,這時(shí)插件就已經(jīng)安裝好了!
創(chuàng)建Scala Maven工程
1.創(chuàng)建一個(gè)普通的maven工程File->Project->Maven(注意:maven工程是Java工程)選擇的時(shí)候,不僅有maven,還會(huì)有scala供你選擇,說明插件安裝成功了
2.引入scala-library依賴,注意版本要和自己安裝的scala版本保持一致
3.在src/main/下重新建一個(gè)directory命名scala和java同級,也就是src/main/scala,
右鍵單擊scala選擇 Mark Directory as ,點(diǎn)擊 Sources Root,如下圖所示
4.導(dǎo)入scala的各種包,選擇右上角的文件圖標(biāo),點(diǎn)擊后選擇Libraries,旁邊右上角有個(gè)"+"單擊后選擇Scala SDK 找到你的scala版本,接下來就直接點(diǎn)擊確定,這時(shí)scala的各種包就導(dǎo)好了!或者在pom.xml引入Scala的依賴包,一樣可以!
5.然后右鍵單擊scala的文件夾,選擇New找到Scala Class 就可以創(chuàng)建一個(gè)scala 類了,創(chuàng)建類名后,把Class換成Object就可以愉快的操作Scala了,下圖所示
pom.xml配置
在dependencies中引入依賴包
語法規(guī)范
Scala 基本語法需要注意以下幾點(diǎn):
區(qū)分大小寫 - Scala是大小寫敏感的,這意味著標(biāo)識Hello 和 hello在Scala中會(huì)有不同的含義
類名 - 對于所有的類名的第一個(gè)字母要大寫。
如果需要使用幾個(gè)單詞來構(gòu)成一個(gè)類的名稱,每個(gè)單詞的第一個(gè)字母要大寫。
方法名稱 - 所有的方法名稱的第一個(gè)字母用小寫。
如果若干單詞被用于構(gòu)成方法的名稱,則每個(gè)單詞的第一個(gè)字母應(yīng)大寫。
例如:def myMethodName()
def main(args: Array[String]) - Scala程序從main()方法開始處理,這是每一個(gè)Scala程序的強(qiáng)制程序入口部分。
Scala 注釋
Scala 類似 Java 支持單行和多行注釋。多行注釋可以嵌套,但必須正確嵌套,一個(gè)注釋開始符號對應(yīng)一個(gè)結(jié)束符號。注釋在 Scala 編譯中會(huì)被忽略。
空行和空格
一行中只有空格或者帶有注釋,Scala 會(huì)認(rèn)為其是空行,會(huì)忽略它。標(biāo)記可以被空格或者注釋來分割。
換行符
Scala是面向行的語言,語句可以用分號(;)結(jié)束或換行符。Scala 程序里,語句末尾的分號通常是可選的。如果你愿意可以輸入一個(gè),但若一行里僅
有一個(gè)語句也可不寫。另一方面,如果一行里寫多個(gè)語句那么分號是需要的。
Scala 轉(zhuǎn)義字符
Scala 變量
在 Scala 中,使用關(guān)鍵詞 “var” 聲明變量,使用關(guān)鍵詞 “val” 聲明常量。
示例聲明變量: var myVar : String = “Foo”
聲明常量: val myVal : String = “Too”
注意
以上定義了常量 myVal,它是不能修改的。如果程序嘗試修改常量 myVal 的值,程序?qū)?huì)在編譯時(shí)報(bào)錯(cuò)。
變量類型聲明
變量的類型在變量名之后等號之前聲明。
語法格式如下:
var VariableName : DataType [= Initial Value]
或
val VariableName : DataType [= Initial Value]
變量類型引用
在 Scala 中聲明變量和常量不一定要指明數(shù)據(jù)類型,在沒有指明數(shù)據(jù)類型的情況下,其數(shù)據(jù)類型是通過變量或常量的初始值推斷出來的。
所以,如果在沒有指明數(shù)據(jù)類型的情況下聲明變量或常量必須要給出其初始值,否則將會(huì)報(bào)錯(cuò)。
示例:
var myVar = 10;
val myVal = “Hello, Scala!”;
Scala 多個(gè)變量聲明
示例:xmax, ymax都聲明為100
val xmax, ymax = 100;
后續(xù)會(huì)有更多關(guān)于Scala的 詳細(xì)使用方法,記得關(guān)注小編!
總結(jié)
以上是生活随笔為你收集整理的Scala语言基础详解,并在IDEA中安装Scala插件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: preventExtention、fre
- 下一篇: Cannot add property