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