Swift和oc之间9个不同之处

上传人:豆浆 文档编号:24902916 上传时间:2017-12-08 格式:PDF 页数:3 大小:222.66KB
返回 下载 相关 举报
Swift和oc之间9个不同之处_第1页
第1页 / 共3页
Swift和oc之间9个不同之处_第2页
第2页 / 共3页
Swift和oc之间9个不同之处_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《Swift和oc之间9个不同之处》由会员分享,可在线阅读,更多相关《Swift和oc之间9个不同之处(3页珍藏版)》请在金锄头文库上搜索。

1、Swift和oc之间9个不同之处下面我所写的是Swift 和 oc 不同的地方 oc 的相关语法没有详细写1.常量和变量常量使用 let变量使用 var2.输出print()println()但是 prinln 可以输出更为复杂的信息3.注释Swift 的多行注释可以嵌套在其它的多行注释之中。你可以先生成一个多行注释块,然后在这个注释块之中再嵌套成第二个多行注释。终止注释时先插入第二个注释块的终止标记,然后再插入第一个注释块的终止标记:/* 这是第一个多行注释的开头/* 这是第二个被嵌套的多行注释 */这是第一个多行注释的结尾 */“通过运用嵌套多行注释,你可以快速方便的注释掉一大段代码,即使

2、这段代码之中已经含有了多行注释块。”4.分号“与其他大部分编程语言不同,Swift 并不强制要求你在每条语句的结尾处使用分号(;),当然,你也可以按照你自己的习惯添加分号。有一种情况下必须要用分号,即你打算在同一行内写多条独立的语句:5.有符号和无符号Int8 Int16 Int32 Int8 Int64UInt8 UInt16 UInt32 UInt8 UInt64在 32 位平台上,UInt 和 UInt32 长度相同在 64 位平台上,UInt 和 UInt64 长度相同尽量不要使用 UInt,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用 Int,即使

3、你要存储的值已知是非负的。统一使用 Int 可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断。6.Swift 推断机制这个是让我很费解的一件事,Swift 推断机制 给程序员生了不少事,但会不会增加系统开销?运行速度有没有影响,7.nilSwift 的 nil 和 Objective-C 中的 nil 并不一样。在 Objective-C 中,nil 是一个指向不存在对象的指针。在 Swift 中,nil 不是指针它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为 nil,不只是对象类型。8.SwitchSwift 的 switch 语句比C语言中更加

4、强大。“在 C 语言中,如果某个 case 不小心漏写了break,这个 case 就会贯穿(fallthrough)至下一个 case,Swift 无需写 break,所以不会发生这种贯穿(fallthrough)的情况。case 还可以匹配更多的类型模式,包括区间匹配(range matching),元组(tuple)和特定类型的描述。switch 的 case 语句中匹配的值可以是由 case 体内部临时的常量或者变量决定,也可以由 where 分句描述更复杂的匹配条件,Swift 中的 switch 不会从上一个 case 分支落入到下一个 case 分支中。相反,只要第一个匹配到的

5、case 分支完成了它需要执行的语句,整个 switch 代码块完成了它的执行。相比之下,C 语言要求你显示的插入 break 语句到每个 switch 分支的末尾来阻止自动落入到下一个 case 分支中。Swift 的这种避免默认落入到下一个分支中的特性意味着它switch 功能要比 C 语言的更加清晰和可预测,可以避免无意识地执行多个 case 分支从而引发的错误如果您需要 C 风格的贯穿的特征你可以在每个需要该特征的 case 分支中使用fallthrought 的特征,你可以在每个需要该特征的 case 分支中使用 fallthrough 关键字9.Swift 数组特定于它所存储元素的类型。这与 Objective-C 的 NSArray 和NSMutableArray 不同,这两个类可以存储任意类型的对象,并且不提供所返回对象的任何特别信息。在 Swift 中,数据值在被存储进入某个数组之前类型必须明确,方法是通过显式的类型标注或类型推断,而且不是必须是 class 类型。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号