多範式的編程語言 scala的基礎語法

scala 概述
(一)scala是一種多範式的編程語言,其設計的初衷是要集成面向對象編程和函數式編程的各類特性,以java虛擬機爲目標類運行環境並將面向對象和函數式編程語言的最佳特性結合在一塊兒
scala的特性
1 運行在jvm 和javaScript 之上語言
2 靜態類型
3混合式編程範式 面向對象編程
4混合式編程範式—函數式編程
5複雜的類型系統
6 簡潔、優雅、靈活的語法
7可擴展的架構
8 併發性
Scala 基礎語法
 1.聲明變量
 val/val 變量名:變量類型=變量值
 val/var a:Int=1
 注:val 修飾的變量不能夠從新賦值,而var修飾的變量能夠從新賦值,scala 中變量聲明類型能夠省略,解析器會根據值進行推斷
 Scala 裏能夠經過type 關鍵字來聲明類型。
type 至關於聲明一個類型別名:
// 把String 類型用S 代替
type S = String
val name: S = "bigdata"
println (name)
 當val被聲明爲lazy時,初始化將被推遲,只有當這個變量真正被使用到的時候,變量的賦值代碼纔會真正的執行
 2 字符串
     scala提供多種定義字符串的方式,咱們能夠根據須要來選擇最方便的定義方式
 val/var 變量名=「字符串」
    val/var 變量名 = """字符串1字符串2"""
    scala中,可使用插值表達式來定義字符串,有效避免大量字符串的拼接。
val/var 變量名 = s"${變量/表達式}字符串"
  a=hello
  
  val  b="${a}word"//hellloword
  java

val/var 變量名 = s"""${變量/表達式}字符串"""
3 數據類型
Scala和Java同樣,有多種數值類型Byte、Char、Short、Int、Long、Float、Double類型和1個Boolean類型。
    4 操做符
    Scala中的+ - * / %等操做符的做用與Java同樣,位操做符 & | ^ >> <<也同樣。
    注:
    1.Scala中的操做符其實是方法
2.Scala中沒有++、--操做符,須要經過+=、-=來實現一樣的效果(由於++ -- 前置後置容易混淆)
3.+ - * / %是方法,那麼就能夠進行操做符重載,完成特殊的運算(也就是本身在類中定義+ - * / %方法表示特殊的運算)
循環判斷
1 塊表達式
定義變量時可使用 {} 包含一系列表達式,其中{}塊的最後一個表達式的值就是整個塊表達式的值。
2 條件表達式
Scala條件表達式的語法和Java同樣,只是更加簡潔,且Scala中if else表達式是有返回值的
注:Scala中沒有三元表達式
若是if或者else返回的類型不同,就返回Any類型
對於沒有返回值的,使用Unit,寫作(),至關於java中的void
    
    循環表達式
    ●簡單for循環:
for (變量 <- 表達式/數組/集合) {循環體}
for(i <- 1 to 10) println(i) //循環打印1~10
嵌套for循環
for (變量1 <- 表達式/數組/集合; 變量2 <- 表達式/數組/集合) {循環體}
for(i <- 1 to 9; j <- 1 to 9){
      if(i >= j ) print(s"${j} * ${i} = ${j*i}")
      if(j == 9) println()
}
守衛
for表達式中,能夠添加if判斷語句,這個if判斷就稱之爲守衛。咱們可使用守衛讓for表達式更簡潔。
for(i <- 表達式/數組/集合 if 表達式) {循環體}
for(i <- 1 to 10 if i % 3 == 0) println(i) //3,6,9
●for推導式
在for循環體中,可使用yield表達式構建出一個集合,咱們把使用yield的for表達式稱之爲推導式
便可以使用for推導式生成一個新的集合(一組數據)
//該for表達式會構建出一個集合
val res = for(i <- 1 to 10) yield i * 10 //10,20,30,40...
while語句自己沒有值,即整個while語句的結果是Unit類型的()
var n = 1;
    val result = while(n <= 10){
      n += 1
    }
    println(result)//(0
    println(n)//55編程

相關文章
相關標籤/搜索