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