基本語法:
```scala
// [ ] 符號表示可選
// 如果省略返回值不寫,則稱為過程
def funName([參數列表]):[返回值]= {
// 函數體
return [表達式]
```
```scala
/*********** 1. 標準寫法 ************/
def square(x:Int):Int = {
println(x)
x * x // 這就是返回值
}
/*********** 2. 不寫返回類型,Scala編譯器會自動判斷 ************/
def square(x:Int) = {
println(x)
x * x
}
/*********** 3. 自動返回 Unit *************/
def sayHello(x:String):Unit={
println("hello")
// 默認會自動調用 return () 來返回 ()
}
/*********** 4. 無返回值的寫法 ************/
// 如果省略 = ,則什么都不返回,即使是 () 也不返回
def sayHello(x:String){ println(x)}
/********** 5. 傳值調用寫法 *************/
def square(x:Int):Int = {
println(x)
x * x
}
square(1+2) // 先計算1+2,再計算 3 * 3
/********** 6. 傳名調用的寫法 *****************/
def square(x:=>Int):Int={
println(x)
x*x
}
square(1+2) // 先不計算,在函數體中用到時才開始計算
/******** 7. 命名參數的寫法 ****************/
def printName(first:String, last:String) = {
println(first + ", " + last)
}
printName("First", "Last")
printName(first="First", last="Last")
/************ 8. 參數缺省值的寫法 ***********/
def printName(first:String="First", last:String="Last")={
println(first + "," + last)
}
printName() // First,Last
printName("John") // John,Last
printName("John", "Tom") // John,Tom
printName(last="Tom") // First,Tom
/************* 9. 匿名函數的寫法 **************/
// (參數列表) => {函數體}
(x:Int) => x*x
(x:Int) => {println(x); x*x}
() => {println("Hello)}
val fun1 = (x:Int) => {println(x); x*x}
fun1(2)
```
- Scala是什么?
- Scala特性
- 開發環境搭建
- 環境搭建
- windows下的環境搭建
- IntelliJ IDEA環境搭建
- Scala關鍵字
- Hello, World
- 數據類型
- 數據類型
- 數據類型層次結構
- 字面量
- Null類型
- Nothing類型
- Unit類型
- 變量與常量
- type定義類型別名
- 字符串插值器
- 條件控制
- 循環控制
- 數組
- 元組
- 集合
- 集合分類
- List常用操作
- Set常用操作
- Map常用操作
- 函數
- 函數聲明與調用
- 函數與方法的區別
- 函數注意事項
- 匿名函數
- 可變參數
- 高階函數
- 中置表達式
- 函數嵌套
- 函數科里化
- 隱式參數
- 隱式函數
- 閉包
- 類和對象
- Java與Scala的比較
- 有關類與對象概念
- 類
- 類的定義和調用
- 類的繼承
- 抽象類
- 單例對象
- 伴生對象和伴生類
- 特質
- 定義特質
- 混入特質
- 抽象類與特質的選擇
- 自身類型
- 依賴注入
- this別名
- 樣例類
- 枚舉類
- 泛型類
- 包與包對象
- 模式匹配
- 基本語法
- 匹配模式
- 偏函數
- 注解
- 運算符
- 正則表達式
- 隱式類
- 異常處理
- 高級類型
- 結構類型
- 復合類型