《Swift 权威指南》——第6章,第6.2节返回多值的函数
本节书摘来自异步社区《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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《精通移动App测试实战:技术、工具和案例》一1.3 Android权限系统
本节书摘来自异步社区《精通移动App测试实战:技术、工具和案例》一书中的第1章,第1.3节,作者 于涌 , 王磊 , 曹向志,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.3 Android权限系统 Android操作系统其实是一个多用户的Linux操作系统,每个Android应用都使用不同的用户,运行在自己的安全沙盘里。系统为应用的所有文件设置权限,这样一来只有同一个用户的应用可以访问它们。每个应用都有自己单独的虚拟机,这样应用的代码在运行时是隔离的,即一个应用的代码不能访问或意外修改其他应用的内部数据。 每个应用都运行在单独的Linux进程中,当应用被执行时,Android都会为其启动一个Java虚拟机,因此不同的应用运行在相互隔离的环境中。Android系统采用最小权限原则确保系统的安全性。也就是说,每个应用默认只能访问满足其工作所需的功能,而不能访问其无权使用的功能。那么我们要实现移动平台的自动化测试时,比如应用Robotium,就涉及到它和被测试应用的交互,如果是上面的机制是不是意味着我们没有办法实施自动化测试呢?当然能够解决该类问题,不同的应用可以运行在相同的进程...
- 下一篇
《iOS 6核心开发手册(第4版)》——2.2节按钮
本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第2章,第2.2节按钮,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.2 按钮iOS 6核心开发手册(第4版)UIButton实例提供简单的按钮,用户可以敲击它们,或者通过目标—动作编程触发回调。可以指定按钮的外观,它使用什么艺术效果,以及它将显示什么文本。 iOS提供了两种方式来构建按钮。可以使用类型化的按钮,它带有几个预先设计的样式,或者从头开始构建自定义的按钮。当前的iOS软件开发工具包(SDK)提供了以下预先定义的类型。可以看到,可用的按钮并非是通用的。它们主要是为了给Apple(而不是你)提供方便而加入到SDK中的。这是由于一般来讲,Apple不会添加它们自己基本上不会使用的UI特性。然而,如果遵循Apple的人机界面指南(Human Interface Guideline,HIG),则可以根据需要在程序中使用它们。图2-2显示了每个按钮。 图2-2 iOS SDK提供了5种类型化的按钮,可以在IB中访问它们,或者把它们直接构建到应用程序中。从左到右依次是:Detai...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- 2048小游戏-低调大师作品
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池