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-----

Categories: scala Tags: scala