-
List基本語法:
定義:val a = List(1,2,3,4),val b = 1::2::3::4::Nil
數(shù)據(jù)與集合拼接:val b = 0::a(只能拼在前面)
集合與集合拼接:a:::b或a++b
head:取得List頭部數(shù)據(jù)
tail:取得List除頭部數(shù)據(jù)外的集合
isEmpty:集合是否為空
查看全部 -
@annotation.tailrec告訴編譯器進(jìn)行尾遞歸的優(yōu)化
查看全部 -
尾遞歸函數(shù)
查看全部 -
柯里化的例子
查看全部 -
柯里化函數(shù):把具有多個參數(shù)的函數(shù)轉(zhuǎn)換成一條函數(shù)鏈,每個節(jié)點上是單一參數(shù)
查看全部 -
匿名函數(shù):函數(shù)常量,無名字
def的函數(shù):函數(shù)變量,有名字
查看全部 -
用函數(shù)作為形參或返回值的函數(shù)稱為高階函數(shù)
查看全部 -
Call By Value:一般求值策略,當(dāng)實參為表達(dá)式時先計算表達(dá)式值再傳遞給形參,只求值一次
Call By Name:特殊求值策略,在參數(shù)列表的參數(shù)類型前加入=>,直接傳遞,用到時再求值,會重復(fù)求值
查看全部 -
_ 為通配符,通配所有對象
匹配
val match{
case 1 => "one"
case 2 => "two"
case _ => "others" //default
}
查看全部 -
if else 是表達(dá)式不是語句
if(Boolean) val else val2
val l = List("","","")
for(
s<-l
//if()
)println(s)
val result_for=for(
s<-l
s1=s.toUpperCase()
)yield(s1)//將s1加入集合中
result_for.foreach(println)
查看全部 -
編寫scala程序要extends App
定義函數(shù):def 函數(shù)名(參數(shù)名:參數(shù)類型):返回類型={代碼塊}
返回類型有時可省略
代碼塊中只有一句代碼可不加{}
多句代碼如寫在一行以 ; 為分割,如寫在多行則無需分割
查看全部 -
常量定義:
var x:數(shù)據(jù)類型=值
數(shù)據(jù)類型默認(rèn)為Int,首字母大寫,Boolean、String可省略
Void類型:val x:Unit=()
def 函數(shù)名=函數(shù)體,拋出異常返回Nothing
字符串插值:s"my name is ${name}"
s不加即引號內(nèi)本身的意思
查看全部 -
Scala類型體系
查看全部 -
val 定義常量
var 定義變量
lazy val 定義惰性常量
類型自動推導(dǎo)
查看全部 -
keyword查看全部
舉報