zoukankan      html  css  js  c++  java
  • Swift 1.2 正式发布

    Swift 1.2 随着 Xcode 6.3 Beta 正式发布了。这次的 beta 发布包含了对 Swift 编译器显著的改进。还有对 Swift 语言本身的新特性的增加。这篇文章介绍下主要部分。

    编译器改进

    Swift 1.2 编译器这次的改进更加稳定并且更加高效。这些更改还提供了对 Xcode 中进行 Swift 开发的使用体验的改进。一些比较明显的改进如下:

    • 增量构建 - 默认情况下,没有修改过的源文件不会被反复的重新编译,这样能更显著的提升编译构建的速度。大量代码的修改依然还需要重新构建。
    • 更快的可执行文件 - Debug 状态下的二进制文件运行明显加快,并且这些新的优化甚至能提升 Release 版本的性能。
    • 更好的编译器诊断 - 更清晰的错误和警告消息,还有新的 Fix-it 功能,这样能够更容易的写出合适的 Swift 代码。
    • 稳定性提升 修复了那些最常见的编译器崩溃。像是 Xcode 中 SourceKit 相关的警告会更少的被你看到了。

    新语言特性

    在 Swift 1.2 中,语言已经被优化成更加有安全保证并且行为可预测。我们仍然继续在改进 Swift 和 Objective-C 代码之间的交互。这其中一些比较显著的改变包括:

    • as! 用作可以失败的类型转换 在运行时可以失败的类型转换现在通过 as! 来表示。
    • 现在可以在 Objective-C 头文件中表达可空性了 - 在 Clang 中提供了新的 Objective-C 扩展,允许在你的 Objective-C API 中表示指针或Block 的可空性。你可以让你的 Objective-C API 更好的和 Swift 协作,并且提升当你在 Swift 项目中与 Objective-C 代码进行混合和匹配时候的体验。
    • Swift 枚举现在可以通过 @objc 关键字导出到 Objective-C 中 - 例如,下面的 Swift 代码:
    @objc enum Bear: Int {
    	case Black, Grizzly, Polar
    }
    

    可以这样导入到 Objective-C 中:

    typedef NS_ENUM(NSInteger, Bear) {
    	BearBlack, BearGrizzly, BearPolar
    };
    
    • let 常量更加强大并且一致 - 新的规则是 let 常量必须在使用之前进行初始化(就像 var),并且只能初始化,不能在初始化后重新赋值或修改。

    这样就允许这样的模式:

    let x : SomeThing
    if condition {
    	x = foo()
    } else {
    	x = bar()
    }
    use(x)
    

    之前版本的 Swift 中,在这种情况下只能使用 var 关键字,即便后面的代码没有对 x 变量进行任何修改。

    • 更强大的 if let 语法的 Optional 解包机制 - if let 语法,现在可以一次解包多个变量。这样就让你的代码少了很多不必要的嵌套。
    • 原生的 Set 数据结构支持 - NSSet 提供的元素唯一的无序集合也像 NSArrayDictionary 一样集成进 Swift。

    结语

    我们努力处理每一个报告上来的 bug,并希望这个 beta 发布版本能尽可能多的解决已知的 bug。 Swift 是同时对语言和工具的重大进步。它可能包含一些和之前代码不兼容的地方,所以 Xcode 6.3 包含了一个代码转换工具。通过点击菜单中的 Convert -> To Swift 1.2 来进行转换。

    更多文章请访问: www.theswiftworld.com
    更多好文,扫码关注微信公众号:

    更多文章请访问: www.theswiftworld.com

  • 相关阅读:
    java final计算
    浅析Java中的final关键字
    easyui
    Java:类与继承
    java中&和&&
    XML
    JSON
    SQL
    selenium
    Metasploit
  • 原文地址:https://www.cnblogs.com/theswiftworld/p/4295624.html
Copyright © 2011-2022 走看看