Scala小記(一)
阿新 • • 發佈:2018-12-14
Scala小記----初識Scala
一,什麼是Scale?
Scala是一門面向物件的,使用JVM執行的函數語言程式設計語言,(函數語言程式設計語言:指的就是那些將方法或者說是函式來作為引數
進行傳遞的程式語言)。Scala預設引入的包有三個(java.long._ , scala._ , Predef._ ) 注:這三個包下main的內容皆
可以直接使用。
1.1函數語言程式設計的特點?
1.1.1 函式是“一等公民”
(first class)指的是函式與其他資料型別一樣,處於一個相互平等的地位,可以賦值給其他變數,亦可以作為引數來傳遞給另一個
函式,或者說是作為別的函式的返回值。
1.1.2 只用表示式,不用語句
表示式(expression)是一個單純的運算過程,總是會有返回值;語句(statement)是執行某種操作,沒有返回值。函數語言程式設計的
要求就是:值使用表示式,不使用語句。每一步都是作為單純的運算來做的,而且都有返回值。函數語言程式設計的開發動機就是處理
運算(computation),不考慮系統的讀寫IO(儘量少)。
1.1.3 沒有“副作用”
意味著函式要保持一個獨立性,所有的功能就是返回一個新的值,沒有其他行為,尤其是不能修改其他的變數的值。
1.1.4 不修改狀態
在其他語言中,變數往往儲存狀態,函式式的程式設計全域性變數不能儲存狀態,狀態一般儲存再引數中。
1.1.5 引用透明
指的是函式的執行不依賴外部的變數,只依賴輸入引數,任何的時候只要引數相同,引用函式所得到的返回值就總是相同的。
1.2 什麼是閉包?
閉包是一個函式,返回值依賴於宣告在函式外部的一個或著多個變數。
閉包通常來講可以簡單的認為是可以訪問一個函式裡面區域性變數的另外一個函式(可以引用外部的變數)
1.3 Scala程式碼塊?變數?常量?
1.3.1 Scala的程式碼塊?
- 包含在{}中間的程式碼稱之為程式碼塊
- 程式碼塊的最後一行就是這個程式碼塊的返回值(並且無需加return關鍵字)
1.3.2 Scala的變數和常量?
- Scala的變數和常量的定義需要有一個初始值,如果我們不知道初始值是什麼的話,我們可以使用下劃線(佔位符)來替代
- 只有抽象類可以定位無初始值的變數和常量