![Swift 4从零到精通iOS开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/794/26846794/b_26846794.jpg)
上QQ阅读APP看书,第一时间看更新
5.6 练习及解析
(1)编写一个计算阶乘的函数。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P89_65862.jpg?sign=1738797583-EbrSeJzcBUlNrOMdGLhaFYCYrkidLaIh-0-dcf44912da1a03eb4482ee35e46b0d4c)
(2)编写函数,其功能是:判断输入的字符是否为数字字符。如果是,则输出true,否则输出false。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P90_65864.jpg?sign=1738797583-PJ4YtQz6R6WyzcxWd2LfPQh3gV8TMZHc-0-6cf8ca17abb4d8c328c27865434ffcfc)
(3)编写函数,其功能是:将两个两位数的正整数a、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P90_65865.jpg?sign=1738797583-BSSTqiaRLNTvCcn1ejDQb2ZZXtFZ1mMF-0-7d6b5775376e38118f342fb609b86137)
(4)编写函数,将字符串中的大写字母变成对应的小写字母,将小写字母变成对应的大写字母,其他字符不变。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P90_65866.jpg?sign=1738797583-lKfNfJQbrem7aEsh2Sovdh4T1nw6gCd2-0-46f47ce0cef04f964161e011283a4a33)
(5)编写函数,输入一个大于0的数字,将不大于这个数字的所有正奇数的和与正偶数的和以元组的形式返回。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P91_65868.jpg?sign=1738797583-btnP1SiJTZhybhy7oQ5dIdBolXuMsnYT-0-36222c3de350eee0ecf7c0bc3ee87b85)
(6)编写函数,输入不定个数的一组整数值,统计其中正数和负数的个数,0不纳入统计。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P91_65869.jpg?sign=1738797583-Tw9L68UcFHNploNC6FfDWmMBlbUu6NU6-0-d8304c48bfeda8c1eceb4c9cd8bba48b)
(7)编写函数,输入圆的半径,返回圆的周长和面积。
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P92_65871.jpg?sign=1738797583-iTbwuw9CgmYuAKdK5B1JmYmVm0TCFZLE-0-c096a0a3b5a60b9733a46c48bdf18e55)
(8)编写函数,输入不定个数的整数,将其中的最大值和最小值返回。
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P92_65872.jpg?sign=1738797583-dhlqopIXjyUnPf2FSmUbBqIzUtsG8vdS-0-721f0389376a8f9a1d36cb0e5ef9c6f3)
(9)使用闭包的风格模拟Dictionary数据的遍历。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P92_65873.jpg?sign=1738797583-1RQantvvlGju1rtrb7SFAoil9CRNpdoE-0-97920ac34b8e39bd4c843f0d31674c9a)
本题中的代码设计十分巧妙,MyEnumDic(dic:,closure:)函数将每次遍历字典的结果传递给闭包,具体这些结果应怎样使用,完全交由闭包中的逻辑来做,并且通过闭包的返回值控制字典遍历是否结束,当开发者找到自己需要的值后,在闭包中返回true即可提前中断字典的遍历,提高代码的运行性能。