当前位置: 首页 > news >正文

农家乐网站建设方案/广州全网推广

农家乐网站建设方案,广州全网推广,企业服务行业,营销型网站的域名4.1.8函数的嵌套 一个函数也可以写在其它函数之中&#xff0c;来封装一个嵌套函数&#xff0c;用以实现仅在一定范围内起到作用的功能&#xff1a;func chooseNumber(needBigger:Bool, number1:Int, number2:Int){func getSmaller(){print ((number1 < number2) ? number1:…

4.1.8函数的嵌套

一个函数也可以写在其它函数之中,来封装一个嵌套函数,用以实现仅在一定范围内起到作用的功能:

     func chooseNumber(needBigger:Bool, number1:Int, number2:Int){func getSmaller(){print ((number1 < number2) ? number1: number2)}func getBigger(){print ((number1 > number2) ? number1: number2)}needBigger ? getBigger : getSmaller}

在第一行代码中定义了一个名为chooseNumber的函数,由其布尔类型的参数needBigger决定采用该函数中的哪个子函数,以实现子函数对应的功能。

接着在第3至10行代码中,依次定义了两个子函数getSmaller和getBigger,其功能依次是获得父函数中的两个参数中的较小的值和较大的值,并将它们在控制台打印输出。

然后在第11行代码中,通过用户指定的needBigger布尔值,执行相应的子函数。

需要注意的事,被嵌套的子函数,只能在其父函数的内部使用,在父函数的外部是无法被调用的。


4.1.9函数的递归用法

递归函数即自调用函数,该函数可以在函数体的内部,直接或间接地调用函数自身,即函数的嵌套调用是函数的本身:

     func recursion(n: Int) ->Int{if n <= 1{return 1}else{return recursion(n: n-1) + recursion(n:n-2)}}print(recursion(n: 5))            //输出结果为:8

 

在第一行的代码中,定义了一个名为recursion的递归函数,它包含一个整型参数,并且拥有一个整型的返回值。

在第3至10行代码中,当参数小于或等于1时,返回1并中止该函数的执行。否则执行第9行的代码,即将参数减1和减2之后的结果进行相加。

最后在第12行将最终的结果在控制台打印输出,其结果为8。

从Playground中可以看出,第14行的递归语句执行了7次,导致第10行的返回1的语句被执行了8次,从而使8个1相加,得到结果为8,如图4-1-1所示:

图4-1-1

 

递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰、明了。


4.1.10常用的内置函数

Swift包含了众多的内置函数,接下来为您介绍部分非常实用的内置函数,它们会在日常工作中为您提供非常大的帮助。

 

abs绝对值函数

绝对值函数,用来返回指定参数的正值。当参数为负数时,返回对应的正数,当参数为正数时,结果将保持不变:

print(abs(-1))           //输出结果为:1            


min最小值函数 

最小值函数,用来返回不定数量的参数之间的最小值:

print(min(8, 2, 3)) //输出结果为:2
  

max最大值函数

最大值函数,用来返回不定数量的参数之间的最大值:

print(min(8, 2, 3, 10))            //输出结果为:10

 

filter函数

Filter函数通常用于查找在数组元素中,满足指定条件的元素,例如查找1至10之间的可以被数字3整除的数字:

for i in (1...10).filter({$0 %3 == 0})
{print(i)
}


在第一行的代码中,{$0 % 3 == 0}为筛选闭包,这里忽略了参数名,而使用默认参数$0,返回类型隐式推断为Bool类型。最终在控制台输出结果为:

3

6

9

 

map函数

map函数通常用于将数组中的每个元素,通过指定的方法进行转换。例如将一个整数数组中的每个数字乘以3:

for i in (1...4).map({$0 * 3})
{print(i)
}

 

在上面的代码中,同样通过一个闭包语句:{$0 * 3},将(1…4)数组中的每个整数进行乘以3的操作,最终在控制台的输出结果为:

3

6

9

12

 

reduce函数

reduce函数可以把数组元素组合计算为一个值,比如将数组中的每个数字进行相加,从而获得数组中所有元素之和:

let result = (1...4).reduce(0,combine: {$0 + $1})
print(result)                   //输出结果为10

 

在第一行的代码中,reduce函数的第一个参数为起始值,这里设置起始值为0。即将0与1,2,3,4四个数字进行相加,所以结果为10。

另外,reduce方法可以进行进一步的简化,将{$0+ $1},缩写为+即可:

let result = (1...4).reduce(0,combine: +)
print(result)                   //输出结果为10

 

如果需要计算数组中所有元素的积,可以将加号+修改为*,同时还需要将起始值从0修改为1,不然进行乘积计算的结果将是0:

let result = (1...4).reduce(0, combine:*)
print(result)                   //输出结果为24




新 作

iOS开发中的神兵利器

共140节课程,讲解GitHub中近百个过千star的iOS热门开源项目
市面上唯一大规模讲解GitHub中热门的iOS开源项目的教程
快速、优雅地解决iOS开发工作中遇到的各种棘手问题

视频观看地址:http://study.163.com/course/courseMain.htm?courseId=1003657013

互动教程下载地址:https://itunes.apple.com/cn/app/id1209739676








http://www.lbrq.cn/news/1621891.html

相关文章:

  • 建盏供应商排行榜/上海seo优化公司 kinglink
  • 成都响应网站建设/指数分布的分布函数
  • 求网站建设方法/免费ip地址网站
  • 培训网站建设方案模板下载/seo排名优化北京
  • 网站后台维护怎么做/百度网络营销app
  • 网站建设的目的及目标/上海网站排名优化怎么做
  • 网站栏目做跳转/莱芜seo
  • 湛江网站建设方案服务/友链交换网站源码
  • 上海市工程信息网站/百度高级搜索首页
  • 中国建设规划采购网站/关键词全网搜索指数
  • 监控摄像头做斗鱼直播网站/企业文化案例
  • 个人网站开发技术要求/推广普通话演讲稿
  • 美女做暖暖免费网站/今日冯站长之家
  • 重庆商城网站建设公司/广告网站推荐
  • 西安网址开发 网站制作/百度合伙人答题兼职赚钱
  • flash动画制作网页/快速将网站seo
  • 优秀企业网站建设价格/代发广告平台
  • 外贸网站建设和优化/网站seo服务公司
  • 如何做网站推广页面/郑州百度推广开户
  • 网站建设饣金手指科杰十二/班级优化大师app
  • 郑州网站制作天强科技/网站流量数据分析
  • 黄岛建网站/如何去推广一个app
  • 幼儿园网站开发/惠州百度推广排名
  • 代理ip平台/武汉seo价格
  • 百度画一画/河南网站seo
  • 上海建网站服务器/郑州网络推广服务
  • 响应式网站建设信息/常见的关键词
  • 廊坊百度网站推广/seo网站分析工具
  • 深圳网站建设深icp备/百度关键词排名软件
  • 常德网站建设多少钱/线上平台怎么推广
  • 道路坑洞检测数据集介绍8300张图片-智能道路巡检系统 车载安全监测设备 城市基础设施管理
  • 第17章——多元函数积分学的预备知识
  • 学习dify:一个开源的 LLM 应用开发平台
  • 机器学习sklearn:决策树的参数、属性、接口
  • windows内核研究(异常-CPU异常记录)
  • 数值计算 | 图解基于龙格库塔法的微分方程计算与连续系统离散化(附Python实现)