Swift 3.0 发布,又要学一门新语言了!

Swift 3.0 发布,又要学一门新语言了!

经验文章nimo972024-12-26 14:03:1410A+A-

Apple 正式发布 Swift 3.0,这是 Swift 开源以来发布的第一个主要版本。Swift 3 包含大量重要的核心语言和标准库改进以及优化;Swift 的 Linux 移植;并且首次发布官方的 Swift 包管理器。

Swift 是苹果遵循 Apache 开源授权协议开源的一门编程语言。

Swift 3 迁移

Swift 3 源代码不兼容旧版本,主要是因为 SE-0005 和 SE-0006 的改进,这些改进不仅影响 Standard Library APIs 命名,还会完全改变 Objective-C APIs (特别是 Cocoa ) 导入到 Swift 的方式。

为了帮助用户迁移到 Swift 3,Xcode 8.0 包含了一个代码迁移工具,可以自动处理大量必需的源变化。

此外,苹果还发布了编程学习应用 Swift Playgrounds for iPad。

平台

Linux (Ubuntu 14.04 和 Ubuntu 15.10)

Linux 移植目前包括 Swift Core Libraries 和 Swift Package Manager。

Ubuntu 14.04 和 Ubuntu 15.10 官方二进制包现已提供下载。

语言改进

Swift 3.0 是个重大的语言版本,源代码不兼容 Swift 2.2 和 2.3,主要包含以下革命性的改进:

  • SE-0002: 移除局部套用的 func声明语法

  • SE-0003: 从函数参数移除 var

  • SE-0004: 移除 ++--操作符

  • SE-0005: 更好的 Objective-C APIs 到 Swift 转换

  • SE-0006: 标准库使用 API 指南 Guidelines

  • SE-0007: 移除 C 风格的 for 循环条件和增量器

  • SE-0032: 为 SequenceType添加first(where:)方法

  • SE-0033: 将 Objective-C Constants 导入为 Swift 类型

  • SE-0077: 改进操作符声明

  • SE-0107: UnsafeRawPointer API

  • SE-0109: 移除 Boolean协议

  • SE-0114: 更新 Buffer "Value" 名称为 "Header"

  • SE-0115: 重命名 Literal Syntax 协议

  • SE-0116: 将 Objective-C id导入为 SwiftAny类型

  • SE-0121: 移除 Optional比较操作符

  • SE-0124: Int.init(ObjectIdentifier)UInt.init(ObjectIdentifier)应该包含一个bitPattern:label

  • SE-0125: 移除 NonObjectiveCBaseisUniquelyReferenced

  • SE-0127: 清除 stdlib Pointer 和 Buffer Routines

  • SE-0133: 重命名 flattenjoined

  • SE-0134: 重命名 String 中 2 个 UTF 8 相关的属性

更多详细改进请看发行说明:

https://swift.org/blog/swift-3-0-released/

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7