Scala - 01 - Scala簡介
阿新 • • 發佈:2018-11-28
import語句 優雅 new .org port 輸入 repl bsp sheet
http://www.scala-lang.org/api/current/
zh-cn
Scala簡介
Scala(Scalable Language)是一門多範式(multi-paradigm)編程語言,Scala的設計吸收借鑒了許多種編程語言的思想,具備面向對象編程、函數式編程等特性。- Scala具備強大的並發性,支持函數式編程,可以更好地支持分布式系統;
- Scala語法簡潔,能提供優雅的API;
- Scala兼容Java,運行速度快,且能融合到Hadoop生態圈中;
Scala特性
- 交互式編程:提供REPL(Read-Eval-Print Loop,交互式解釋器),可以即時查看中間結果並修改
- 可伸展的(Scalable)編程語言:小腳本到大規模系統編程都能勝任
- 純正的面向對象語言:每個值都是對象,每個操作都是方法調用
- 函數式語言:沒有可變變量,不會有內存共享的問題
- 兼容Java,無縫的Java互操作:
- Scala運行於Java平臺(JVM,Java 虛擬機)上,,scalac編譯器將.scala源文件編譯成.class文件(Java字節碼),被JVM加載並執行;
- 兼容並可以調用現有的Java類庫,Java包可以被import到Scala來直接調用Java方法,訪問Java字段,繼承Java類和實現Java接口;
- Scala也可以被Java直接調用;
Scala文檔
Docs:http://docs.scala-lang.org/ API Docs:- http://docs.scala-lang.org/zh-cn/
- http://docs.scala-lang.org/zh-cn/cheatsheets/
- http://docs.scala-lang.org/zh-cn/overviews/
Scala基礎教程
- 菜鳥教程 - Scala http://www.runoob.com/scala/scala-tutorial.html
- 易百教程 - Scala http://www.yiibai.com/scala/
Scala編碼約定
- 區分大小寫 - Scala區分大小寫
- 類名稱 - 所有類名應以大寫字母開頭。如果包含多個單詞,則每個內部單詞的第一個字母應該是大寫。
- 方法名稱 - 所有方法名稱應以小寫字母開頭。如果包含多個單詞,則每個內部單詞的第一個字母應為大寫。
- 程序文件名 - 程序文件的名稱必須與對象名稱完全匹配,並將.scala作為文件後綴,否則將不會編譯。
- def main(args:Array [String]) - Scala程序從main()方法開始,Scala程序的強制性部分。
Scala換行符
- Scala是一種面向行的語言,其語句以分號(;)或換行符終止。
- 語句結尾處的分號(;)通常是可選的。語句在單行上自行顯示,則不需要輸入。
- 如果在單行上寫多個語句,則需要分號。
scala> val test = | | You typed two blank lines. Starting a new command. scala>
Scala註釋
- Scala單行和多行註釋與Java類似。
- 註釋中任何字符都被Scala編譯器忽略。
- 多行註釋可以嵌套,但需要正確嵌套。
Scala包
使用 package 關鍵字定義包。- 一個包是一個命名的代碼模塊
- 包聲明是源文件中的第一個非註釋行
- 導入Scala軟件包,以便在當前的編譯範圍內引用
- 可以從單個包導入單個類和對象,也可以導入多個類或對象
- import語句可以出現在任何地方,而不是只能在文件頂部。
- import的效果從開始延伸到語句塊的結束。
import java.awt.Color // 引入Color import java.awt._ // 引入包內所有成員 import java.awt.{Color, Font} //引入包中的幾個成員,可以使用selector(選取器) import java.util.{HashMap => JavaHashMap} //重命名成員 import java.util.{HashMap => _, _} //隱藏成員 //引入了util包的所有成員,但是HashMap被隱藏了
註意:默認情況下,Scala 總會引入 java.lang._ 、 scala._ 和 Predef._。
Scala - 01 - Scala簡介