流量控制(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 函数类型作为參数。
而后面则是返回一个函数的两种不同实现。后面的实现使用了嵌套函数。

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




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

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

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

  1. Swift - 邮件发送功能的实现

    使用MessageUI.framework框架除了可以发送短信,还能发送Email,步骤如下: (1)首先判断设备是否有发送邮件功能 (2)如果设备允许发送邮件,创建一个MFMailComposeVi ...

  2. Swift 4 放大镜功能实现

    先上效果图吧,框框被限制在了image内了. 这个feature我把它用在了我的app里了,博客写得不容易,来star下啦

  3. 【swift学习笔记】四.swift使用Alamofire和swiftyJson

    Alamofire是AFNetworking的swift版本,功能灰常强大. github:https://github.com/Alamofire/Alamofire SwiftyJSON是操作js ...

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

    今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小实 ...

  5. Swift - enumerateObjectsUsingBlock的用法

    enumerateobjectsusingblock:不是Array的方法在NSArray使用.如果你想使用它,你需要一个实例NSArray而不是Array. import Foundation va ...

  6. Openstack Swift中间件编写

    关于openstack swift的资料可以看这里,这里还有这里. 准备环境 从零开始接触的同学可以先从swift的all in one部署开始学习,在本机搭建好swift环境就可以进行简单的测试了. ...

  7. swift学习(二)--基本运算符、字符串、集合操作

    在这一篇博客里面,我想要介绍一下swift里面一些常用的基本运算符,还有涉及到的字符串,集合操作.你会发现在swift里面还是有许多其他语言所不具有的特性运算操作的. 首先最基本的+,-,*,/,&g ...

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

    Swift项目兼容Objective-C问题汇总 转载自 http://www.cocoachina.com/swift/20150608/12025.html 本文是投稿文章,作者:一叶(博客)欢迎 ...

  9. swift 与 OC 混合编程

    原文地址:http://www.cocoachina.com/swift/20150608/12025.html 一.解决问题 Swift项目需要使用封装好的Objective-c组件.第三方类库,苹 ...

随机推荐

  1. Node.js自学笔记之回调函数

    写在前面:如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.这段时间对node.js进行了简单的学习,在这里 ...

  2. C# is 和 as的用法

    try            {                if (sender is Button)                {                    Button dd ...

  3. Spring Boot集成EHCache实现缓存机制

    SpringBoot 缓存(EhCache 2.x 篇) SpringBoot 缓存 在 Spring Boot中,通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManag ...

  4. Kinect开发笔记之三Kinect开发环境配置具体解释

            0.前言:        首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本号,SDK是Kinect for windows SDK 1.8版本 ...

  5. java韩顺平老师视频有需要可以留言

    java韩顺平老师视频有需要可以留言

  6. jQuery 中 is() 函数常见使用方法

    依据选择器.DOM元素或 jQuery 对象来检測匹配元素集合.假设当中至少有一个元素符合这个给定的表达式就返回true. 假设没有元素符合,或者表达式无效.都返回'false'. '''注意:''' ...

  7. [CSS] Target Positional Elements Using *-Of-Type CSS pseudo-classes

    Learn how to target elements based on their position inside of a parent element in relation to its s ...

  8. Hadoop常见异常及其解决方案 分类: A1_HADOOP 2014-07-09 15:02 4187人阅读 评论(0) 收藏

    1.Shell$ExitCodeException 现象:运行hadoop job时出现如下异常: 14/07/09 14:42:50 INFO mapreduce.Job: Task Id : at ...

  9. RSA公钥、私钥、签名和验签

    1 RSA加密算法介绍 RSA又叫非对称加密算法,这类加密算法有一对秘钥,其中一个用来加密一个用来解密.这一对秘钥中你可以选择一个作为私钥(自己保存),另一个作为公钥(对外公开).用私钥加密的内容只能 ...

  10. Oracle null 处理

    null first null last 解决啦-