Scala 学习笔记
高级基础
- 高阶函数
- Scala作为一门]“函数式编程语言”, 函数是一个值,能被传递和操作
- 模式匹配
- match表达式的高级应用,样例类
- 类型参数
- 通过类型参数构建类和函数、方法,使之适应不同类型的参数
高阶函数
头等函数
==函数是一个值==
- 实现\(\sum_a^bf(n)\)
- \(f(n)=n\)
1 | def sum1(a:Int,b:Int):Int={ |
- \(f(n)=n*2\)
1 | def sum2(a:Int,b:Int):Int={ |
def f(a:Int)=a*2
1 | def sum2(a:Int,b:Int):Int={ |
- 在Scala中,函数能作为参数进行传递,函数能调用满足参数要求的不同的函数作为参 数
1 | def sum(f:Int= > Int,a:Int,b:Int);:Int= |
匿名函数
- 不命名的函数
(x:Int) => x*2
(x1:T1,x2:.2...) => E
def sum1(a:Int,b:Int):Int=sum( (x:Int)=>x,a,b)
def sum2(a:Int,b:Int):Int=sum( (x:Int)=>x*2 ,a,b)
- 匿名函数的作用域非常小,往往只在参数中使用,其作用范围即是调用该匿名函数参数的函数体
valf2 = (a:Int) => a*2 // val m=f2(a)
val sum3 = sum2_ // val m=sum3(a,b)
1 | val f1=(a:nt)=>a |
柯里化
1 | def A(a:T1,b:T2,c:T3,d:T4)= E |
控制抽象
- 求平方根迭代算法\(x_{n+1} = \frac{x_n + \frac{x}{x_n}}{2}\)