Swift过程控制和功能

流量控制(Control Flow)

For周期

for骑自行车和C语言,OC用法很相似,平时for()和 for in两种。

遍历可以使用下划线"_"略对值的訪问等。

Switch

switch在Swift中则显得灵活的多。只是须要注意的是。不同于C语言,Swift中的Switch不存在隐式的贯穿。每一个case里的表达式后面不须要写break则会自己主动跳出。

假设你想保留这次匹配并向下匹配的话,请使用fallthroughkeyword。

每一个case里必需要有表达式,每一个switch也必需要有default来匹配可能没有预料到出现的情况。

swift中的匹配十分灵活,能够是区间,元组或者是枚举的case等等。

switch也支持值绑定(Value Binding)

在前两个case中,我们声明了x,y两个常量,假设匹配的话,则能够得到前面声明的point常量中的x或者y的值,然后再进行一些操作。

注意到这里没有写default语句。是由于最后一个case相当于default。它包括了全部的情况,而xcode的编译器可以识别。所以并没有报error。

switch在匹配的时候也能够带附加条件进行推断,用到了wherekeyword。

使用方法类似于SQL语句。

控制转移

控制转移主要用于一些须要跳出这次循环或者马上终止当前訪问域的代码的情景。

用到了continue,break,fallthrough,returnkeyword。

continue

用于停止本次循环迭代

这里每当匹配到l,o或者空格时。马上进行下次for循环。

break则同其它语言使用方法一样。跳出for,switch,while等流程控制语句。

fallthrough属于贯穿。在case中运行完statement继续向下匹配运行。

带标签的语句

能够给一些流程控制语句前加上标签。来进行标识。

标识语句的标准写法和使用方法:

这里的break不再跳出本次switch,而是跳出了整个while循环。这里PrimeLoop这个标签起到了作用。

函数

在swift中,函数眼下不再我们像OC一样去用+-来声明方法。而是使用func。

在swift中。我们调用函数的时候能够像其它语言一样,忽略起返回值。

这里在第二个函数体中。我们并没实用到第一个函数中的Int型的返回值。

Swift的元组也能够作为函数的返回值。

这里我们获取了一个字符串的长度以及当中表示数字的字符个数。

并用一个元组获取其各自的值。

func在定义參数的时候能够为方便使用函数的人更清楚參数的含义。能够在前面加"#"来表明外部參数名。

这里在使用函数的时候我们就能看到參数前面的參数名提示了。

有的时候我们在定义參数的时候想给其赋一下默认值。

当我们赋值的时候,swift默觉得其加入了外部參数名。

可变參数

Swift中的函数也有可变參数。注意的是一个函数參数最多仅仅有一个可变參数,并且必须是參数表的最后一个。

常量參数和变量參数

Swift中的參数默觉得常量。而且不能对外部值进行改动。

參数仅仅是对该值的一个值拷贝,生命周期也为函数内部。

我们能够用var来声明參数表明他们在函数内部可变。

假设想要保留其改动,则使用inoutkeyword。传值进来时须要在C语言中的取址符"&"来实现。

函数类型

在Swift中。差点儿全部东西都作为一个类型。一个对象呈现。

所以,函数也是一种类型。

以此类推,函数也能够作为參数,作为返回值类型甚至嵌套实现等。

灵活的语法能够让我们在设计上拥有很多其它的选择。

上面addAnother函数使用了(Int, Int) -> Int 函数类型作为參数。

而后面则是返回一个函数的两种不同实现。后面的实现使用了嵌套函数。

好像忘了说,函数使用->来表明返回值。

以上本博客所有内容,欢迎勘误和讨论。

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-31 15:37:29

Swift过程控制和功能的相关文章

Swift - 邮件发送功能的实现

使用MessageUI.framework框架除了可以发送短信,还能发送Email,步骤如下: (1)首先判断设备是否有发送邮件功能 (2)如果设备允许发送邮件,创建一个MFMailComposeViewController视图控制器,并对其设置邮件标题,正文内容,收件人,附件等. (3)邮件发送后,会执行回调代理方法,可以获取发送结果(成功,失败或取消) 效果图如下: 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

初学 Swift (实现加减乘除功能和函数的基本类型)

//计算器: 回调 typealias count = ( Int , Int ) -> Int func add(a :Int ,b :Int) ->Int { return a+b } func delete(a :Int ,b :Int) ->Int { return a-b } func cheng(a :Int ,b :Int) ->Int { return a*b } func dev(a :Int ,b :Int) ->Int { return a/b } fu

3.Swift的常量与变量

1.定义 let 定义常量,一经赋值不允许再修改 建议使用,更加安全 var 定义变量,赋值之后仍然可以修改 应该尽量先选择常量,只有在必须修改时,才需要修改为 var 在 Xcode 7.0 中,如果没有修改变量,Xcode 会提示修改为 let 代码演示 import UIKit class ViewController: UIViewController { override func viewDidLoad() {        super.viewDidLoad()        de

Swift项目兼容Objective-C问题汇总

本文是投稿文章,作者:一叶(博客)欢迎将原创文章或者译文投给我们,投稿方式:[email protected]或者在首页点击“投稿爆料” 一.解决问题 Swift 项目需要使用封装好的Objective-c组件.第三方类库,苹果提供的解决方案能够处理日常大部分需求,但还不能称之为完美,混编过程中会遇到很多问 题.本文将Swift兼容Objective-c的问题汇总,以帮助大家更好的使用Swift,内容列表如下: 1. Swift调用Objective-c代码 2. Objective-c调用Sw

记录:swift学习笔记0-1

swift还在不断的更新做细微的调整,都说早起的鸟儿有虫吃,那么我们早点出发吧,趁着国内绝大多数的coder们还没有开始大范围普遍应用. 网上有些大神说:swift很简单!我不同意这个观点,假如你用helloword来说它语法精简没错,但是这个简单的例子不能证明它功能简单! 我相信swift语言非常强大,拥有很多OC以前没有的超强大面向对象特性!想用好并不容易! 下面是:比较系统的整理了自己学习swift 的笔记,一方面用作记录,便于以后查阅,也分享给需要的朋友! 我是任海瑞,共勉!我与你还有很

窥探Swift之函数与闭包的应用实例

今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小实例中回类比一下Objective-C中的函数的写法等等.Swift中的函数还是有许多好用的特性的,比如输入参数,使用元组返回多个值, 定义形参名,设定默认参数以及可变参数等等一些好用的特性.而在Swift中的闭包就是Objective-C中的Block, 除了语法不通外,两者的用法是一样的.废话少说

"Swift"编程语言

来自英文文档.百度翻译以及自己没过4级的渣渣英语功底,为了自己以后看起来方便 About Swift 关于"海燕" IMPORTANT 重要 This is a preliminary document for an API or technology in development. Apple is supplying this information to help you plan for the adoption of the technologies and programm

Swift - enumerateObjectsUsingBlock的用法

enumerateobjectsusingblock:不是Array的方法在NSArray使用.如果你想使用它,你需要一个实例NSArray而不是Array. import Foundation var array: NSArray = ["Some", "strings", "in", "an", "array"] array.enumerateObjectsUsingBlock({ object, in

OpenStack之swift安装笔记

在顺利的安装部署了KeyStone之后,原以为swift的安装调试也会如KeyStone一般,但过程却充满了坎坷,在结合源代码中的一些函数之后,终于成功的完成了swift的安装,并实验了上传下载文件等功能,下面整理了swift的安装过程,并对遇到的问题进行了总结,希望对遇到同样问题的人有些启示或帮助.安装过程依然参考的是OpenStack的官方安装手册,但补充了一些细节.在安装之前,先简单的介绍一下Swift是什么.主要功能是什么.OpenStack的对象存储(Swift)是一个多租户的.高可扩