Swift 3.0 及展望:彻底的泛型、精简的语言 - 开源中国社区
Float_left Icon_close
Swift 3.0 及展望:彻底的泛型、精简的语言
oschina 2015年12月24日

Swift 3.0 及展望:彻底的泛型、精简的语言

oschina oschina 发布于2015年12月24日 收藏 29 评论 30

做APP,小程序就上开源众包。世界杯期间免费领2600元启动金。>>>  

2015 年 12 月 3 日,Swift 正式开源。同时,官方也公布了 Swift 3 的最新消息,即 Swift 3 将会在 2016 年秋天发布。

API 设计指南与 Swift 中 Objective-C 的导入

Swift 3 的 API 设计指南将与 Objective-C 中 Cocoa 的完全不同。这就意味着 Objective-C 中的 API 映射到 Swift 时会与以往不同。这里有一个相关的例子可以研究一下。以下这行代码的方法调用是从现有的 Objective-C 中「翻译」成 Swift 的:

let contentString = listItemView.stringValue.stringByTrimmingCharactersInSet(
   NSCharacterSet.whitespaceAndNewlineCharacterSet())

而在 Swift 3 中同样的方法调用将会是下面这个样子的:

let content = listItem.stringValue.trimming(.whitespaceAndNewlines)

这样让语法看上去更「Swift 化」。然而,这也意味着已经导入的 Objective-C API 将会有很大变动,因此,现有的这些代码将会报错。

彻底的泛型

Swift 有泛型,但是这次是为了引进新的特性,就像递归协议约束(使得受限的扩展遵循新协议的能力),比如遵循 Equatable 的数组的元素也是遵循 Equatable 的。

精简的语言

对于那些「和 Swift 语法不是很配」的语言特性仍然会有一些小改动。同样的,这也会使得现有的这些代码报错。

展望 Swift 3

  • Swift 目前还没有在语言层面支持并发操作。取而代之的是使用 NSOpertion 或 dispatch queues 来处理。这种状况在 Swift 3 中仍然不会改变。但是,在未来(Swift 4?)可能会有一个语言层面上并发操作的支持。

  • Swift 和 C,特别是 Objective-C,现在已经有了很好的兼容。但是,却缺乏与 C++ 的兼容。虽然,这也不会在 Swift 3 上有所改变,但是这需要一个比较长期的目标来引进它。

小结

首先,Swift 将会在未来大规模的改善和提升,这是一个非常好的消息。另一方面,Swift 3 的发布会使得现有的 Swift 2 代码报错,因此,需要做一些代码迁移的工作才行。

参考

Swift.org
Swift Programming Language Evolution

作者:Thomas Hanning,原文链接,原文日期:2015/12/10
译者:小铁匠Linus;校对:Cee

本文转载自 SwiftGG

更多 Swift 3.0 特性展望请看:我们期待的 Swift 3.0 将会是什么样?

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Swift 3.0 及展望:彻底的泛型、精简的语言
分享
评论(30)
最新评论
0

引用来自“游客”的评论

swift语言很不错,不明白的是为什么那么多人还抱着OC不放,只有一种可能这些人不想去学新的事物,在我看来OC比C还要难用许多。
PHP是最好的语言
0
swift语言很不错,不明白的是为什么那么多人还抱着OC不放,只有一种可能这些人不想去学新的事物,在我看来OC比C还要难用许多。
0
swift3.cn
0

引用来自“neo-chen”的评论

中国人被这些企业玩的团团转,perl, php, asp, java, .net, golang, dlang,scala。。。。。

不就是做一个用户注册,内容发布吗,分类检索,购物车? 乐此不疲,前仆后继,一代一代人重复干这些。
百花齐放,百家争鸣
0

引用来自“CasparLi”的评论

放TM的P!

PHP是最好的语言!
就是就是
0
放TM的P!

PHP是最好的语言!
0
大力发展C++,才能壮我大中华软件开发事业。
0

引用来自“neo-chen”的评论

中国人被这些企业玩的团团转,perl, php, asp, java, .net, golang, dlang,scala。。。。。

不就是做一个用户注册,内容发布吗,分类检索,购物车? 乐此不疲,前仆后继,一代一代人重复干这些。

引用来自“gowk”的评论

哈哈,笑了
给力
0
2楼 cdc 农民吧尼嘛操了
0
赶紧支持开发android!第三方机构去实现也行。
0

引用来自“巴拉提”的评论

每次swift升级版本,iOS项目就要蛋疼一次。能不能不要这么折腾?

引用来自“ios之王”的评论

你们产品项目用swift的?厉害,你们技术总监不管的么?

引用来自“巴拉提”的评论

我们项目没有用swift 是我自己的个人项目在用 另:我就是技术总监
个人项目,你随便怎么玩没人管
0

引用来自“巴拉提”的评论

每次swift升级版本,iOS项目就要蛋疼一次。能不能不要这么折腾?

引用来自“ios之王”的评论

你们产品项目用swift的?厉害,你们技术总监不管的么?
我们项目没有用swift 是我自己的个人项目在用 另:我就是技术总监
0

引用来自“巴拉提”的评论

每次swift升级版本,iOS项目就要蛋疼一次。能不能不要这么折腾?
你们产品项目用swift的?厉害,你们技术总监不管的么?
0

引用来自“neo-chen”的评论

中国人被这些企业玩的团团转,perl, php, asp, java, .net, golang, dlang,scala。。。。。

不就是做一个用户注册,内容发布吗,分类检索,购物车? 乐此不疲,前仆后继,一代一代人重复干这些。

引用来自“gowk”的评论

哈哈,笑了
哎 还有很多小众的业务 你没接触到
0

引用来自“neo-chen”的评论

中国人被这些企业玩的团团转,perl, php, asp, java, .net, golang, dlang,scala。。。。。

不就是做一个用户注册,内容发布吗,分类检索,购物车? 乐此不疲,前仆后继,一代一代人重复干这些。

引用来自“ios之王”的评论

你错了,跨平台.NET C#将一统天下,微软王者归来,会这一个就通吃了
你错了 windows连linux都没弄死!.NET C#想统一天下
0

引用来自“树相马”的评论

反正除了开发苹果软件,其他平台也不会用
土狗一只
0

引用来自“neo-chen”的评论

中国人被这些企业玩的团团转,perl, php, asp, java, .net, golang, dlang,scala。。。。。

不就是做一个用户注册,内容发布吗,分类检索,购物车? 乐此不疲,前仆后继,一代一代人重复干这些。
不就是吃喝拉撒老病死么,一代一代人重复干这些
0

引用来自“neo-chen”的评论

中国人被这些企业玩的团团转,perl, php, asp, java, .net, golang, dlang,scala。。。。。

不就是做一个用户注册,内容发布吗,分类检索,购物车? 乐此不疲,前仆后继,一代一代人重复干这些。
哈哈,笑了
0
持观望态度中
0

引用来自“neo-chen”的评论

中国人被这些企业玩的团团转,perl, php, asp, java, .net, golang, dlang,scala。。。。。

不就是做一个用户注册,内容发布吗,分类检索,购物车? 乐此不疲,前仆后继,一代一代人重复干这些。
虽然看上去很不爽,但是说的是事实。
顶部