WWDC上,Apple的软件研发副总裁Craig Federighi宣布了这一消息。他还表示Swift将是未来20年Apple应用软件和系统开发的主要语言。Apple的其他官方说法,也明确Swift是C和Objective-C的继任者,这大大提升了Swift语言的地位。 Swift 2.0增加的主要特性包括泛型、更快的调试模式、更快的编译、新的错误处理机制、C函数指针API、注释里Markdown格式等等。由于改进了SDK,平台API显得更为自然。 Apple的官方博客和Swift网页更详细地介绍了具体的改进: 语法改进 使用do, guard, defer和repeat关键字来控制流程;函数与方法的命名规则统一;协议扩展和默认实现;if语句和for循环里可以使用扩展的模式匹配了。 更现代的语言 命名参数、推断类型、模块、内存自动管理都使代码更清晰,表达力更强,程序员的工作更流畅。闭包与函数指针统一,结构支持方法、协议和扩展,map和filter等函数式语言模式,元组和多返回值。 开源 包括编译器和标准库,将支持Linux这种非Apple平台,许可证将采用符合OSI标准的协议(这个范围非常大,有些非常不友好,包括Apple自己的APSL)。不过,Apple也明确表示接受和鼓励来自社区的贡献。 与Objective-C能很好地互操作 对已有的OC代码的更新,也可以采用Swift了。 新的错误处理机制 引入其他语言的开发者已经非常熟悉的try, throw和catch块,但又与原有的NSError兼容。
注释支持Markdown语法 支持版式丰富的注释文本,甚至可以嵌入图片,显示在Xcode的Quick Help里。 更好的安全性 let定义常量和var定义变量,变量强制使用前初始化,数组和整数都会自动检查溢出,内存自动管理,基本消除了C等传统语言的许多常见安全问题。另外,系统默认Swift对象的值不能为nil。 值得注意的是,Apple宣布Swift不仅支持iOS和OS X,也将支持Linux。接下来,会有Swift on Rails或者Swift.NET出现吗?Swift社区可是相当凶猛的……
|