Scala 学习之(自定义 While 循环)心得

自定义while 循环所涉及的Scala知识:

1.闭包:

	一个函数,访问到了他的外部(局部)变量的值,那么这个函数和他所处的环境称为闭包

2.递归调用:

	一个函数/方法在函数/方法体内又调用了本身

3.控制抽象:

	名调用:传名参数,传递不再是具体的值,而是代码块

4.匿名函数:

	匿名函数又称为lambda表达式: ( 参数: 类型 ) =>  { 函数体 }

5.函数柯里化:

	把一个参数列表的多个参数,变成多个参数列表

一、采用闭包实现函数,将代码块作为参数传入进行递归调用

// condition 是 传入的判断条件

def myWhile(condition: =>Boolean): (=> Unit) =>  Unit = {
      // 内层函数需要递归调用,参数是循环体
      
      def loop(op: => Unit): Unit = {
        if(condition){
          op
          myWhile(condition)(op)
        }
      }
      loop _
}

二、通过匿名函数进行代码简化

def myWhile(condition: =>Boolean): (=> Unit) =>  Unit =
{
     
      op => {
        if(condition){
          op
          myWhile(condition)(op)
        }
      }
}

三、使用柯里化实现

def myWhile(condition: =>Boolean)(op: => Unit): Unit = 
{
      if(condition) {
        op
        myWhile(condition)(op)
      }
}

四、可依次对上述函数进行检验:实现1到10的累加输出

var n = 1
myWhile(n <= 10){
	println(n)
    n += 1
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顺其自然的济帅哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值