- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Swift20初探值得注意的新特性
Swift 2.0初探:值得注意的新特性转眼间,Swift已经一岁多了,这门新鲜、语法时尚、类型安全、执行速度更快的语言已经渐渐的深入广大开发者的心。我同样也是非常喜爱这门新的编程语言。今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用。我在这里也说道说道Swift 2.0中值得大家注意的新特性。guard语句guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么。但与if语句不同的是,guard语句只会有一个代码块,不像if语句可以if else多个代码块。那么guard语句的作用到底是什么呢?顾名思义,就是守护。guard语句判断其后的表达式布尔值为false时,才会执行之后代码块里的代码,如果为true,则跳过整个guard语句,我们举例来看看。我们以今年高考为例,在进入考场时一般都会检查身份证和准考证,我们写这样一个方法:func?checkup(person:?[String:?String!])?{??//?检查身份证,如果身份证没带,则不能进入考场?guard?let?id?=?person[id]?else?{?print(没有身份证,不能进入考场!)?return?}??//?检查准考证,如果准考证没带,则不能进入考场?guard?let?examNumber?=?person[examNumber]?else?{?print(没有准考证,不能进入考场!)?return?}??//?身份证和准考证齐全,方可进入考场?print(您的身份证号为:\(id),准考证号为:\(examNumber)。请进入考场!)??}?checkup([id:?123456])?//?没有准考证,不能进入考场!?checkup([examNumber:?654321])?//?没有身份证,不能进入考场!?checkup([id:?123456,?examNumber:?654321])?//?您的身份证号为:123456,准考证号为:654321。请进入考场!?上述代码中的第一个guard语句用于检查身份证,如果检查到身份证没带,也就是表达式为false时,执行大括号里的代码,并返回。第二个guard语句则检查准考证。如果两证齐全,则执行最后一个打印语句,上面的两个guard语句大括号内的代码都不会执行,因为他们表达式的布尔值都是true。这里值得注意的是,id和examNumber可以在guard语句之外使用,也就是说当guard对其表达式进行验证后,id和examNumber可在整个方法的作用域中使用,并且是解包后的。我们再用if else语句写一个类似的方法:func?checkupUseIf(person:?[String:?String!])?{??if?let?id?=?person[id],?let?examNumber?=?person[examNumber]?{?print(您的身份证号为:\(id),准考证号为:\(examNumber)。请进入考场!)?}?else?{?print(证件不齐全,不能进入考场!)?}??print(您的身份证号为:\(id),准考证号为:\(examNumber))?//?报异常??}?checkupUseIf([id:?123456])?//?证件不齐全,不能进入考场!?checkupUseIf([examNumber:?654321])?//?证件不齐全,不能进入考场!?checkupUseIf([id:?123456,?examNumber:?654321])?//?您的身份证号为:123456,准考证号为:654321。请进入考场!?我们可以看到用if else实现的方法显然不如guard实现的那么精准。而且id和examNumber的作用域只限在if的第一个大括号内,超出这个作用域编译就会报错。通过上述两个小例子不难看出,guard语句正如一个称职的守卫,层层把关,严防一切不允许发生的事,并且让代码具有更高的可读性,非常棒。异常处理在Swift 1.0时代是没有异常处理和抛出机制的,如果要处理异常,要么使用if else语句或switch语句判断处理,要么使用闭包形式的回调函数处理,再要么就使用NSError处理。以上这些方法都不能像Java中的try catch异常控制语句那样行如流水、从容不迫的处理异常,而且也会降低代码的可读性。当Swift 2.0到来后,一切都不一样了。在Swift 2.0中Apple提供了使用throws、throw、try、do、catch这五个关键字组成的异常控制处理机制。下面我们来举例看看如何使用,我用使用手机
您可能关注的文档
- 2015年自考《大学语文》试题.doc
- 2015年项目论证与评估复习重点.docx
- 2015执业药师真题药学综合知识与技能.docx
- 2015有毒有害作业场所管理制度.doc
- 2015江西理工大学算法设计与分析期末复习题.docx
- 2015楼板裂缝处理方案.docx
- 2015法律考试判断.doc
- 2015济南师德试题与答案3.docx
- 2015版《中国药典》关于《通则和指导原则》第四部.docx
- 2015电力市场回顾.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)