《Swift 权威指南》——第6章,第6.2节返回多值的函数
函数 指南 返回 swift 权威 6.2 多值
2023-09-11 14:17:43 时间
本节书摘来自异步社区《Swift 权威指南》一书中的第6章,第6.2节返回多值的函数,作者 李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看
6.2 返回多值的函数
不管是数学上的定义,还是各种语言中的实现,函数都只能返回一个值,如果非要返回多个值,就返回一个对象,然后将要返回的值以字段、属性或方法形式体现,但这也是返回一个值。不过在Swift函数中,却彻底颠覆了我们对函数的印象。Swift函数是真真正正地可以返回多个值。
可能有的读者会想到,在前面学习数据类型时,有一个元组类型,这个类型可以同时表示多个值,难道函数返回的是这个类型的值?没错,Swift函数就是通过元组类型实现返回多个值的功能的。
其实函数返回元组类型和返回其他类型在写法上没什么区别,只是“→”后面需要用圆括号定义元组类型,定义方式如下。
(returnValue1:valueType1, returnValue2:valueType2,...)
下面是一个典型的返回元组类型的例子。在这个例子中,统计了一个字符串中有多少个元音字母,有多少个辅音字母,有多少个其他字符。很明显,这需要通过元组返回3个值。函数的实现调用代码如下。
func count(string: String) - (vowels:Int, consonants:Int, others:Int) var vowels = 0 var consonants = 0 var others = 0 for c in string switch String(c).lowercaseString case "a", "e", "i", "o", "u": ++vowels // 元音计数器加1 case "b", "c", "d","f", "g", "h", "j", "k", "l", "m","n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z": ++consonants // 辅音计数器加1 default: ++others // 其他字符计数器加1 // 返回元组值 return (vowels, consonants, others) // 调用count函数 let total = count("some arbitrary string!") println("\(total.vowels) vowels and \(total.consonants) consonants") 执行这段代码,会输出如下内容。 6 vowels and 13 consonants
Swift中关于集合计算的几种函数记录(intersect、symmetricDifference、union、subtract) Swift中关于集合计算的几种函数记录(intersect、symmetricDifference、union、subtract) 很久之前用过一次,后来就忘了。。。扎心,现在记录一下 PS:这几种函数其实不限于swift内的,在JavaScript、python、DB等其他语言,应该也有类似用法,这里我只简单讲了在swift内的用法。
swift的函数与其他语言中的函数还是有很多的不同点的, 我们在本节中一起学习swift中的函数都有哪些特性。 辅助文件, 在“统一的函数引用体系”中会用到。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 3.PHP条件语句及其字符串相关函数
- Kentico RefreshSecurityParams函数中的代码会遇到错误Object must implement IConvertible.
- Matlab中rgb2ind函数用法
- python使用内置方法和修饰器方法获取类名、函数名
- 《Hack与HHVM权威指南》——1.3.1 函数的返回类型
- 《Hack与HHVM权威指南》——1.6.3 推理局限在函数内
- C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义
- JAVA8函数式接口--Consumer接口
- 用汇编的眼光看C++(之拷贝、赋值函数)
- shell中函数的使用
- 《C语言编程初学者指南》一1.2 认识main()函数
- 《Python数据科学指南》——1.14 返回一个函数
- 《Haskell趣学指南》—— 第1章,第1.2节小朋友的第一个函数
- 【C语言】strcpy函数_字符串拷贝【详解】
- Perl列表相关函数
- ES6之Array.find()和findIndex()函数的用法
- 《Python数据科学指南》——1.11 将函数作为变量传递
- 《区块链开发指南》一一第3章 密码学基础 3.1 Hash函数
- 《Arduino开发实战指南:机器人卷》一2.1 数字I/O口的操作函数
- 《Arduino开发实战指南:机器人卷》一2.6 串口通信函数
- C/C++中的日期和时间函数(strftime,clock_t, time_t)
- Vue3实践指南:使用reactive函数声明数组如何正确赋值响应式、script setup语法糖中toRefs如何优雅呈现、Options API 与 Composition API 如何选择及混用是否对性能有影响、关于 setup 中没有 this 的问题及 setup 的执行时机
- python 性味归经函数,字符串分隔
- 【OpenGL基础篇】——使用面向对象方法封装OpenGL函数(二)