/*
給你乙個集合 val list = list(1, 2, 3, 4, "abc") ,請完成如下要求:
將集合 list 中的所有數字+1,並返回乙個新的集合
要求忽略掉 非數字 的元素,即返回的 新的集合 形式為 (2, 3, 4, 5)
*/object partialfundemo01
//模式匹配
def addone2( i :any ):any =
} def f1(n: any): boolean =
def f2(n: int): int =
//將 any->int [map]
def f3(n: any): int =
}
object partialfundemo02
println("v1=" + v1)
v1.asinstanceof[int] + 1}}
//使用偏函式
//說明:如果是使用偏函式,則不能使用 map,應該使用 collect
//說明一下偏函式的執行流程
//1. 遍歷 list 所有元素
//3. 每得到乙個 element,放入到新的集合,最後返回
val list2 = list.collect(partialfun)
println("list2" + list2)
}}
object partialfun03
val list = list(1, 2, 3, 4, 1.2, 2.4, 1.9f, "hello")
val list2 = list.collect(partialfun2)
println("list2=" + list2)
//第二種簡寫形式
val list3 = list.collect
println("list3=" + list3) // (2,3,4,5)
}}
object anonymousefunction 包括
val triple = (x: double) =>
println("triple" + triple(3)) // 9.0
println(triple)
}}
object higherorderfunction
//sum 是接收乙個 double,返回乙個 double
def sum(d: double): double =
def mod(d:double): int =
val res = test(sum, mod, 5.0) //
println("res=" + res) // 2.0
}}
object higherorderfunction2
//分步執行
//f1 就是 (y: int) => 3 - y
val f1 = minusxy(3)
println("f1 的型別=" + f1)
println(f1(1)) // 2
println(f1(9)) // -6
//也可以一步到位的呼叫
println(minusxy(4)(9)) // -5
}}
object parameterinfer
def f1(n1:int ,n2:int): int =
}
object parameterinfer
}
object parameterinfer
}
object currydemo02
//類 隱式類 ( 可以參考前面講解內容)
implicit class testeq(s: string)
}val str1 = "hello"
println(str1.checkeq("hello")(eq))
//匿名函式
println(str1.checkeq("hello")((s1: string, s2: string) => s1.equals(s2)))
//在看乙個簡寫形式
println(str1.checkeq("hello")(_.equals(_)))
}}
object abstractcontrol
}.start()
}myruninthread
//簡寫形式 可以把小括號去掉
def myruninthread2(f1: => unit) =
}.start()
}//對於沒有輸入,也沒有返回值函式,可以簡寫成如下形式
myruninthread2
}}
object abstractcontrol2
}mywhile(x > 0)
}}
Scala高階特性 函式式程式設計
目標一 深入理解高階函式 目標二 深入理解隱式轉換 高階函式 概念scala混合了物件導向和函式式的特性,我們通常將可以做為引數傳遞到方法中的表示式叫做函式。在函式式程式語言中,函式是 頭等公民 高階函式包含 作為值的函式 匿名函式 閉包 柯里化等等。作為值的函式 可以像任何其他資料型別一樣被傳遞和...
SCALA函式式程式設計
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 scala的語法規定,將函式賦值給變數時,必須在函式後面加上空格和下劃線 正常宣告乙個帶有乙個字串型別引數,並返回unit型別的方法 sca...
Scala函式式程式設計
知識點1.scala的柯里化技術,允許將接受多個引數的函式,轉變為接受單一引數的函式 2.柯里化的作用可以允許使用者自建控制結構 object demo03 f1 a int,b int int def f11 a int b int f11 a int b int int def f2 a int...