1. 程式人生 > 其它 >Scala的學習

Scala的學習

Scala:Scala將面向物件和函數語言程式設計結合成一種簡潔的高階語言

Scala語言的特點:1.Scala是一門多正規化的程式語言,支援面向物件和函數語言程式設計。(多正規化,就是多種程式設計方法)

           2. Scala的原始碼通過scalac編譯器編譯為Java的位元組碼檔案(class),然後執行在JVM上

使用Scala必須要有Java

1.Scala的安裝

一般情況下IDEA預設不支援Scala的開發,需要安裝Scala的外掛

 

 

 

外掛可以從jetbrains.com下載

 

 

將從本地安裝Scala外掛(外掛得是適應IDEA版本)

然後建立maven工程,maven是不支援Scala開發,需要引入Scala框架

在專案上點選Add FrameWork Support, 選擇Scala

 

建立專案的原始檔目錄

右鍵點選main目錄->New->點選Diretory -> 寫個名字(比如scala)

右鍵點選scala目錄->Mark Directory as->選擇Sources root

2.hello world案例

由於Scala是完全面向物件的,並沒有靜態語法,因此採用伴生物件單例的方式呼叫方法

 

 

3.變數和資料型別

 

常量:在程式執行的過程中,其值不會被改變的變數

注意:java中的final如果加static才會被存放在常量池中,否則作為不可修改的變數存在堆疊中。

       var 變數名 [: 變數型別] = 初始值            var i:Int = 10

  val 常量名 [: 常量型別] = 初始值             val j:Int = 20

注意:能用常量的地方不用變數

案例實操:

(1)宣告變數時,型別可以省略,編譯器自動推導,即型別推導

(2)型別確定後,就不能修改,說明Scala是強資料型別語言。

(3)變數宣告時,必須要有初始值

(4)在宣告/定義一個變數時,可以使用var或者val來修飾,var修飾的變數可改變,val修飾的變數不可改。

(5)var修飾的物件引用可以改變,val修飾的物件則不可改變,但物件的狀態(值)卻是可以改變的。(比如:自定義物件、陣列、集合等等)

 

字串輸出:

基本語法:

(1)字串,通過+號連線

(2)重複字串拼接  ex:println("nihao " * 3) -> nihao nihao nihao

(3)printf用法:字串,通過%傳值。  ex : println("name : %s  , age : %d" , name ,age)

(4)字串模板(插值字串):通過$獲取變數值  ex: println(s"name : ${name},age : ${age}")

 

鍵盤輸入:

StdIn.readLine()、StdIn.readShort()、StdIn.readDouble()

 

Scala中的資料型別(重點):

 

1) Scala中一切資料都是物件,都是Any的子類。

2)Scala中資料型別分為兩大類:數值型別( AnyVal) 、引用型別(AnyRef),不管是值型別還是引用型別都是物件。

3) Scala資料型別仍然遵守,低精度的值型別向高精度值型別,自動轉換(隱式轉換)

4)Scala中的StingOps是對Java中的String增強

5)Unit:對應Java中的void,用於方法返回值的位置,表示方法沒有返回值。Unit是一個數據型別,只有一個物件就是()。Void不是資料型別,只是一個關鍵字

6)Null是一個型別,只有一個物件就是null。它是所有引用型別(AnyRef)的子類。

7)Nothing,是所有資料型別的子類,主要用在一個函式沒有明確返回值時使用,因為這樣我們可以把丟擲的返回值,返回給任何的變數或者函式。