




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——Scala詳細總結(精辟版)plugins>browserepositorits探尋你要下載的插件名稱,右側可以找到下載地址。(2)解壓插件壓縮包,把插件的全部文件都復制到IntelliJIDEA安裝程序的plugins文件夾中,注意插件最好以一個單獨的文件夾放在plugins目錄下。
(3)一般重啟intellijidea就會自動加載插件,進入setting>plugins看看有木有。假使不自動加載的話,進入setting>plugins>installpluginfromdisk,找到方才復制的插件位置,再然后就好了。
接下來就可以新建scalaproject,新建時我選擇的是“Scala〞(不是sbt,由于我這選擇sbt之后,等半天sbt都不會配置好,郁悶啊)。
相關神態:
什么是SBT?SBT=(notso)SimpleBuildTool,是scala的構建工具,與java的maven地位一致。其設計宗旨是讓簡單的項目可以簡單的配置,而繁雜的項目可以繁雜的配置。
===scala特點
在scala中,語句之后的“;〞是可選的,這根據你的喜好。當有多個語句在同一行時,必需加上分號,但不建議把多個語句放在一行。在scala中,建議使用2個空格作為代碼縮進,不過我咋喜歡一個tab呢⊙﹏⊙!在scala中,符號“_〞相當于java中的通配符“*〞。scala類似于c++、java,索引也是從0開始,但元組是個例外,它從1開始。
===數據類型scala有7種數值類型:Byte、Char、Short、Int、Long、Float和Double,以及2種非數值類型:Boolean和Unit(只有一個值“()〞,相當于java和c++中的void,即空值)。這些類型都是抽象的final類(不能使用new新建,也不能被繼承),在scala包中定義,是對java基本數據類型的包裝,因此與java基本數據類型有一致的長度。同時,scala還提供了RichInt、RichChar等等,它們分別提供Int、Char等所不具備的便捷方法。另外,scala沿用了java.lang包中的String。在scala中,常量也稱作字面量,字符串字面量由雙引號包含的字符組成,同時scala提供了另一種定義字符串常量的語法——原始字符串,它以三個雙引號作為開始和終止,字符串內部可以包含無論何種任意字符。在scala中,我們使用方法,而不是強制類型轉換,來做數值類型之間的轉換,如99.44.toInt、97.toChar。另外也可以參見顯式類型轉換和隱式轉換。
===變量scala有兩種變量:val和var。val宛如java中的final變量,var宛如java中的非final變量。由于scala是完全面向對象的,因此val和var只是聲明白對象的引用是不可變的還是可變的,并不能說明引用指向的對象的可變性。聲明變量的同時需要初始化之,否則該變量就是抽象的。假使不指定變量的類型,編譯器會從初始化它的表達式中推斷出其類型。當然你也可以在必要的時候指定其類型,但注意,在scala中變量或函數的類型總是寫在變量或函數的名稱的后邊。例如如下:valanswer=“yes〞valanswer,message:String=“yes〞
===標識符
scala標識符有四種形式:字母數字標識符、操作符標識符、混合標識符、字面量標識符。
字母數字標識符:跟其他語言類似,由字母、數字和下劃線組成,但需注意“$〞字符被保存作為scala編譯器產生的標識符之用,你不要隨意使用它啊。
操作符標識符:由一個或多個操作符字符組成。scala編譯器將在內部“粉碎〞操作符標識符以轉換成合法的內嵌“$〞的java標識符。若你想從java代碼中訪問這個標識符,就應當使用這種內部表示方式。
混合標識符:由字母數字以及后面跟著的下劃線和一個操作符標識符組成。如unary_+定義了一個前綴操作符“+〞。
字面量標識符:是用反引號`…`包含的任意字符串,scala將把被包含的字符串作為標識符,即使被包含字符串是scala的關鍵字。例如:你可以使用Thread.`yield`()來訪問java中的方法,即使yield是scala的關鍵字。
===操作符
scala的操作符和你在java和C++中的預期效果是一樣的,但注意scala并不提供++、--操作符。不過,scala中的操作符實際上都是方法,任何方法都可以當作操作符使用,如a+b相當于a.+(b)。需要注意的是:對于不可變對象(注:對象的不可變并不是說它的引用變量是val的),并不真正支持類似于“+=〞這樣以“=〞結尾的操作符(即方法),不過scala還是提供了一些語法糖,用以解釋以“=〞結尾的操作符用于不可變對象的狀況。假設a是不可變對象的引用,那么在scala中a+=b將被解釋為a=a+b,這時就相當于新建一個不可變對象重新賦值給引用a,前提是引用變量a要聲明為var的,由于val變量定義之后是不可變的。
更多信息參見函數(方法)部分。
===塊表達式與賦值在scala中,{}塊包含一系列表達式,其結果也是一個表達式,塊中最終一個表達式的值就是其值。
在scala中,賦值語句本身的值是Unit類型的。因此如下語句的值為“()〞:{r=r*n;n-=1}正是由于上述原因,scala中不能多重賦值,而java和c++卻可以多重賦值。因此,在scala中,如下語句中的x值為“()〞:x=y=1
===控制結構scala和其他編程語言有一個根本性差異:在scala中,幾乎所有構造出來的語法結構都有值。這個特性使得程序結構更加精簡。scala內建的控制結構很少,僅有if、while、for、try、match和函數調用等而已。如此之少的理由是,scala從語法層面上支持函數字面量。
if表達式:
scala的if/else語法結構與java等一樣,但是在scala中if/else表達式有值,這個值就是跟在if/esle后邊的表達式的值。如下:
vals=if(x>0)1else-1同時注意:scala的每個表達式都有一個類型,譬如上述if/esle表達式的類型是Int。假使是混合類型表達式,則表達式的類型是兩個分支類型的公共超類型。String和Int的超類型就是Any。假使一個if語句沒有else部分,則當if條件不滿足時,表達式結果為Unit。如:if(x>0)1就相當于:if(x>0)1els
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國硬管淋浴器行業投資前景及策略咨詢報告
- 保安服務勞務派遣合同書
- 全新理發店合同協議
- 學校秋季親子活動計劃
- 制定合理的績效考核體系計劃
- 制定有效的財務預算協調方案計劃
- 2024年青島萊西市教育系統招聘工作人員考試真題
- 2024年湖南財政經濟學院專任教師招聘考試真題
- 小學階段美術基礎知識教學計劃
- 禁毒志愿者活動計劃
- 傳染病防治知識和技能培訓計劃
- 【MOOC】書法鑒賞-浙江傳媒學院 中國大學慕課MOOC答案
- 水利工程資料員培訓課件
- 《史記》《漢書》第九-整本書閱讀《經典常談》名著閱讀與練習
- 環衛設施設備更新實施方案
- 機械制造技術基礎(課程課件完整版)
- 江西省南昌市高三二模考試地理試題
- 廣東省高州市2023-2024學年高一下學期期中考試數學
- 2024年高等教育文學類自考-06050人際關系心理學考試近5年真題附答案
- 福建省公路水運工程試驗檢測費用參考指標
- CBL聯合情景模擬人文護理查房
評論
0/150
提交評論