swtift语言的未来发展

swtift语言的未来发展

ID:31632653

大小:63.79 KB

页数:5页

时间:2019-01-16

swtift语言的未来发展_第1页
swtift语言的未来发展_第2页
swtift语言的未来发展_第3页
swtift语言的未来发展_第4页
swtift语言的未来发展_第5页
资源描述:

《swtift语言的未来发展》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1.Swift容易阅读女U你所能预计到的一门基于C构建的语言,Objective-C身上所有的毒疣子都有。为了将关键词和类型同C的类型作区分,Objective^使用@符号引入了新的关键词。因为Swift不是基于C构建的,它同意了所有的关键词,并将0bjective-C类型和对象相关的关键词前而大量的@符号移除了.Swift丢弃了遗留下来的约定。因而你不再需要行尾的分号,以及if/else语句中围绕条件表达式的括弧。另外一个大变化就是方法的调用不再互相嵌套成中括号的深坑-再见吧,[[[川。Swif

2、t中的方法和函数的调用使用行业内标准的在一对括弧内使用逗号分隔的参数列表。这样做的结果就是一种带有简化了句法和语法的更加干净有表现力的语言。除了其它当代流行的编程语言之外,Swift更像是白然的英语了。这种可读性是的其很容易能被其它来自JavaScript,Java,Python,C#,以及C++的开发者纳入到他们的工具链之中-一点也不像Objective-C这只笨笨的黄小鸭。2.Swift更易于维护历史遗留问题会让Objective-C越来越倒退-C没有演进的话,这个语言也就跟着无法进行演进。C

3、蛊要程序员维护两套代码文件,以优化构建的时间以及创建可执行app的效率,这种需要延续到了Objective-C上。Swift丢掉了对着俩文件的要求。Swiftl.2中Xcode和LLVM编译器可以自动计算出以来并执行增量构建。如此,将内容清单(头文件)同内容主体(实现文件)相分离。Swift将Objective-C头文件(.h)和实现文件(.m)合并成了一个代码文件(.swift)。Objective-C的两份文件系统存在强加给程序员的额外工作-而这些工作会让程序员难免分心而不能顾全大局.在Obj

4、ective-C中你不得不手动去同步文件之间的方法名称和注释,有吋候要寄希望于一个约定好的标進,不过除非团队的规矩和代码审查制度到位,否则这是不会为你提供什么保障的。Xcode和LLVM编译器可以在幕后做一些工作來减轻程序员的工作负担.使用Swift,程序员可以少做些费脑力的记忆性工作,从而能在创建app逻辑的工作上面赢得更多的时间.Swift为我们程序员裁掉了那些样板式的工作,同时对代码、注释以及所要支持的特性的质量都有所提升。3.Swift更加安全0bjective-C有意思的一个方面是指针-

5、特别是nil(null)指针-它们被处理的方式.在Objective中如果你调用方法的是一个值为nil(未初始化)的指针变豊什么事情都会不发生.表达式或者一行操作变成了一项空操作(no-operation(no-op)),而这就使得其看起來会有不会奔溃的好处,但其实它己经变成了一个巨大的bug來i®.no-op会导致不可预测的行为,这是程序员在尝试找出并修复某种随机的奔溃,或者要停止反常的行为时所要而对的敌人。在Swift代码中的可选类型使得一个nil可选值的可能性变得非常的明确,这意味它能在你写

6、下一段糟糕的代码时会生成一个编译器错误.这就建立了一种短程反馈的循环,可以让程序员带着目标去写代码.问题在代码被写就时就可以被修复,这大大节省了你要在修复有关来自0bjective-C指针逻辑的bug吋需要耗费的吋间和金钱。在Objective-C的传统中,如果某个值返回自一个方法,(使用注释以及方法的命名约定来)说明指针变量被返回的行为是程序员的责任•在Swift中,可选类型和值类型使得方法定义屮值是否存在,或者其有可能是可选的(即值可能存在也可能为nil),这些问题都是很明确清楚的。为了提供対

7、行为的预测,Swift会在nil可选值被使用时触发一次运行时崩溃。崩溃提供的就是一种一致的行为,它能减轻修复bug过程的压力,因为它会直白地强制让程序员修复好这个问题.Swift运行时崩溃的时候会停在nil可选值被使用到的那行代码处。这就意味着bug能更早的被修复,并能在Swift代码中被完全的规避掉。4.Swift的内存管理是统一化的Swift以一种0bjective-C从未有过的方式进行了统一。对自动引用计数(ARC)的支持是在整个过程化的和面向对象的代码路径上完成的。在。Objective・

8、C。屮,ARC在CocoaAPI和血向对象代码中获得支持;然而它并不支持过程式的C语言代码和像CoreGraphics这样的API。这意味着在使用CoreGraphicsAPI以及其它iOS上的底层API时,内存管控的处理都是程序员的责任。程序员在ObjectiveC上会遇到的大量内存溢出问题在Swift上是不可能的。程序员不应该为他或她创建的数字对象去考虑内存的问题。因为ARC在编译吋就处理了所有的内存管理事务,内存管理所有消耗的脑力现在可以被用來专注于核心的应用逻辑以及新的功能

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。