Scala簡介
Scala 是一門多范式(multi-paradigm)的編程語言,設計初衷是要集成面向對象編程和函數式編程的各種特性。
Scala 運行在 Java 虛擬機上,并兼容現有的 Java 程序。Scala 源代碼被編譯成 Java 字節碼,所以它可以運行于 JVM 之上,并可以調用現有的 Java 類庫。
scala特性
面向對象特性
Scala 是一種高度表達性的編程語言,它結合了面向對象編程和函數式編程的最佳特性。
- 類和對象
- 繼承和多態
- 抽象類和特質
- 封裝
函數式編程
- 高階函數
- 不可變性
- 模式匹配
- 閉包
類型系統
靜態類型:
Scala具備類型系統,通過編譯時檢查,保證代碼的安全性和一致性。
類型系統具體支持以下特性:
- 泛型類·
- 協變和逆變
- 標注
- 類型參數的上下限約束
- 把類別和抽象類型作為對象成員
- 復合類型
- 引用自己時顯式指定類型
- 視圖·多態方法
類型推斷:強大的類型推斷機制,可以減少代碼中的類型聲明,提高代碼的可讀性。
泛型編程:支持泛型,允許編寫更加通用和可復用的代碼。類型系統擴展:包括協變(covariance)和逆變(contravariance)、特質(traits)混入等。
擴展性
Scala提供了許多獨特的語言機制,可以以庫的形式輕易無縫添加新的語言結構:
- 任何方法可用作前綴或后綴操作符
- 可以根據預期類型自動構造閉包
并發性
Akka 框架: 基于 Actor 模型,用于構建并發、分布式和容錯的應用程序。
·Futures 和 Promises: 提供異步編程的抽象,簡化并發任務的管理。
·Scala 并發集合: 提供線程安全的數據結構,方便并發編程。
強大的標準庫
集合框架: 提供豐富的不可變和可變集合類
字符串處理: 提供強大的字符串操作和正則表達式支持。
IO操作: 支持文件和網絡IO操作
與 Java 互操作性
可以直接調用 Java 代碼,并且可以在 Java 中調用 Scala 代碼,使用 Java 的標準庫和框架
模塊化和可擴展性
特質(Traits): 可以混入類中,提供類似多重繼承的功能,增強代碼復用性。
隱式轉換和參數: 支持隱式轉換和隱式參數,增強代碼的靈活性和可擴展性。
Scala語言特點
優雅、速度快、融合hadoop
Scala基礎語法
區分大小寫
類名:第一個字母大寫
方法名稱:第一個字母小寫
程序文件名:程序文件的名稱應該與對象名稱完全匹配
標識符
可以使用兩種形式的標志符,字符數字和符號。字符數字使用字母或是下劃線開頭,后面可以接字母或是數字,不能使用關鍵字作為標識符。
關鍵字
?注釋
支持單行注釋和多行注釋(可以注釋)
單行注釋:
//
對行注釋:
/*
*
*
*/
空行和空格
一行中只有空格或者帶有注釋,Scala 會認為其是空行,會忽略它。標記可以被空格或者注釋來分割。
換行符
Scala是面向行的語言,語句可以用分號(;)結束或換行符。
Scala 包
Scala 使用 package 關鍵字定義包
Scala 使用 import? ?關鍵字定義包