-
call by value 對(duì)函數(shù)實(shí)參求得值后再才傳給函數(shù),且僅求一次--常用
call? by name 函數(shù)實(shí)參每次在函數(shù)體內(nèi)被用到時(shí)才會(huì)求值;形參以=>開(kāi)頭,會(huì)使用call by name
查看全部 -
函數(shù)式編程
不變性(immutability)
為了獲取引用透明性,任何值都不能變化
查看全部 -
http://idcbgp.cn/learn/613查看全部
-
遞歸函數(shù)基于棧
尾遞歸中所有遞歸形式的調(diào)用都出現(xiàn)在末尾,當(dāng)編譯器檢測(cè)到一個(gè)函數(shù)調(diào)用尾遞歸時(shí),就覆蓋當(dāng)前的活動(dòng)記錄而不是在棧中創(chuàng)建一個(gè)新的
@annotation.tailrec 告知scala,對(duì)此為函數(shù)進(jìn)行尾遞歸優(yōu)化
查看全部 -
柯里化把具有多個(gè)參數(shù)的函數(shù)轉(zhuǎn)換未一條函數(shù)鏈,每個(gè)節(jié)點(diǎn)上是單一參數(shù)
查看全部 -
scala中函數(shù)是第一等公民,函數(shù)類似于變量,但具有函數(shù)的類型
類型格式A=>B ,表示一個(gè)接受類型A的參數(shù),并返回類型B的函數(shù)
匿名函數(shù),就是函數(shù)常量,也稱為函數(shù)文字量,定義格式未(形參列表)=>{函數(shù)體}
查看全部 -
scala中所有的運(yùn)算都是基于表達(dá)式
call by value 對(duì)函數(shù)實(shí)參求值,且僅求一次--常用
call? by name 函數(shù)實(shí)參每次在函數(shù)體內(nèi)被用的時(shí)都會(huì)求值;形參以=>開(kāi)頭,會(huì)使用call by name
查看全部 -
try不是語(yǔ)句是表達(dá)式會(huì)返回一個(gè)值
案例中的下劃線是通配符可通配所有對(duì)象
match類似于swith
查看全部 -
if是表達(dá)式,不是語(yǔ)句:if(exp) valA else valB
for comprehension實(shí)現(xiàn)循環(huán)的推導(dǎo)式
查看全部 -
Block:代碼塊,最終的求得值是最后一個(gè)表達(dá)式的值
函數(shù):def functionName(param:ParamType):ReturnType={
? ? //function body:experssions
}
多個(gè)參數(shù)用逗號(hào)分隔
查看全部 -
Any父類(基類):下轄AnyVal和AnyRef;最后子類都是Nothing
AnyVal值類型;Numeric\Boolean\Char\Unit=void
AnyRef引用類型:All java.* ref types \All scala.* ref types;AnyRef最后的子類Null
高精度向低精度賦值時(shí),需做隱式轉(zhuǎn)換;
Nothing通常用于函數(shù)異常終止
String與java的String相同,引入插值特性interpolation
ie:
val name="wanglei"
S"My name is ${name}"
查看全部 -
Nothing通常用于函數(shù)異常終止查看全部
-
安裝scala,sbt,IDEA+scala插件
查看全部 -
<a target="_blank">http://docs.scala-lang.org/overviews/collections/introduction.html</a>查看全部
-
@ annotation. tailrec
def factorial(n: Int,m: Int): Int=
if(n<=e)m
else factorial(n-1,m*n)
// @ annotation. tailrec 是尾遞歸優(yōu)化必須
factorial(5,1)
查看全部
舉報(bào)