Scala控制抽象介绍
Scala控制抽象
Scala没有太多的内建控制抽象,因为它为你提供了创建自己的控制抽象的能力
1、减少代码重复
高阶函数的好处之一是它让你能创造控制抽象从而减少代码重复
2、简化客户代码
高阶函数的另一个重要应用是把它们放在API里使客户代码更简洁
/**
*检查是否包含负数
*/
def containsNeg(nums: List[Int]):Boolean={
var exits=false
for(num <- nums)
if(num<0)
exits=true
exits
}
//简洁的定义方式是对传入的List调用高阶函数exists
def containsNeg(nums: List[Int])=nums.exists(_ < 0)
/**
*检查是否包含了奇数
*/
def containsOdd(nums: List[Int]): Boolean={
var exists=false
for(num <- nums)
if(num % 2 == 1)
exists=true
exists
}
//对上面的方法使用高阶函数exists
def containsOdd(nums: List[Int])=nums.exists(_ % 2 == 1)
exists方法代表了控制对象,是Scala库提供的特定用途循环架构而不是像while或for那样内建在Scala语言里的。
3、柯里化
柯里化的函数被应用于多个函数列表,而不是仅仅一个
//定义陈旧的函数
def plainOldSum(x: Int, y: Int)= x+y
//定义柯里化函数
def curriedSum(x: Int)(y: Int)=x+y
----EOF-----