50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Swift 3 来了!

  • 2016-09-25
  • 本文字数:835 字

    阅读完需:约 3 分钟

Apple 工程师 Ted Kremenek 在博文中写道,Swift 3.0 已发布。这次发布的新版本中对于语言及其标准库进行了大量的修改,增加了Linux 端口,并首次官方发布了 Swift Package Manager

自 2015 年底 Apple开源 Swift 之后,Swift 3 是首个发布的主要版本,该版本实现了 Swift 演变过程中所讨论并通过的 90 多个提议。

Swift 3.0 中的一系列变化旨在依照 Swift API Design 指南,通过去除一部分可能被视作遗留下来的 Objective-C 的内容,来清理 API。这个举措可以有效缩短 Swift 的语法,并增强一致性:

需要命名函数和方法的第一个参数以实现写操作(除非用 _ 显式省略):

复制代码
aString.write(toFile: "filename", atomically: true, encoding: NSUTF8StringEncoding)
UIFont.preferredFont(forTextStyle: UIFontTextStyleSubheadline)

而不是:

复制代码
aString.writeToFile("filename", atomically: true, encoding: NSUTF8StringEncoding)
UIFont.preferredFontForTextStyle(UIFontTextStyleSubheadline)

省略不必要的词:

复制代码
UIColor.red()

而不是:

复制代码
UIColor.redColor()

当上述的两条规则同时采纳的时候会产生更好的效果,例如下面的语句所示:

复制代码
aString.stringByReplacingOccurrencesOfString("A", withString: "a")

变成:

复制代码
aString.replacingOccurrences(of: "A", with: "a")

Swift 3 改进的另外一个版块是处理属于多个 Cocoa 框架的 C 功能。比如说所有以 CGContext、CGAffineTansform、CGPDFDocument 等开始的 Core Graphics 功能,现在可以被称为是对象的方法:

复制代码
if let ctx = UIGraphicsGetCurrentContext() {
ctx.setFillColor(UIColor.red().cgColor)
...
}
CGAffineTransform(translationX: 64, y: 0)

Swift 3 中还对语法进行了改变,以清理语言。比如说,去除了 ++ 和 -- 运算符,去除了函数的参数中的var ,去除了 C 语言中的循环条件和增量器,这些语法带来的弊大于利。

Swift 3 的变化列表涵盖了太多内容,很抱歉我们无法在一篇文章中涵盖所有的内容。你可以在官方的公告中查看所有的更新细节。

查看英文原文 Swift 3 is Out

2016-09-25 19:003752
用户头像

发布了 218 篇内容, 共 78.2 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

ChatGPT:生成式AI技术带来的变革

百度开发者中心

自动驾驶 #人工智能 文心一言

ChatGPT:生成式AI引领科学革命

百度开发者中心

#人工智能 ChatGPT 文心一言

ChatGPT:引领未来智能交互的生成式AI

百度开发者中心

#人工智能 ChatGPT 文心一言

逻辑清晰,详解社交源码Android开发SDK

山东布谷网络科技

sdk

高性能MySQL实战(一):表结构 | 京东物流技术团队

京东科技开发者

数据库表 表结构设计 企业号 8 月 PK 榜 高性能表

生成式AI与ChatGPT:引领未来智能交互

百度开发者中心

#人工智能 文心一言

体育馆LED显示屏技术解决方案

Dylan

技术 系统 比赛 LED显示屏 体育

云堡垒机英语怎么翻译?它比硬件堡垒机便宜吗?

行云管家

云计算 堡垒机 云堡垒机

解析BeanDefinitionRegistry与BeanDefinition合并

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 8 月 PK 榜

6步玩转OpenHarmony标准芯片适配

LAVAL社区小助手

OpenHarmony

ChatGPT:引领生成式AI的变革

百度开发者中心

#人工智能 ChatGPT 文心一言

IntelliJ IDEA下基于Scala实现的Git检查工具

TiAmo

git IDEA IntelliJ IDEA 代码检查

使用 Feature Flags 与可观测工具实现数据库灰度迁移

观测云

数据库 可观测性

Spring缓存是如何实现的?如何扩展使其支持过期删除功能? | 京东云技术团队

京东科技开发者

spring Spring Cache 企业号 8 月 PK 榜 spring缓存

浅谈Redis - 热点key问题 | 京东云技术团队

京东科技开发者

redis Redis 热点key 企业号 8 月 PK 榜

[OpenHarmony]一文带你详解芯片--SL8541e-系统性能优化

LAVAL社区小助手

OpenHarmony

Flink资源调度模型

腾讯云大数据

flink

在代码世界游走,没几把“锁”防身可不行 | 京东云技术团队

京东科技开发者

分布式锁 java锁 java‘ 企业号 8 月 PK 榜

[OpenHarmony]手把手教你OTA升级开发

LAVAL社区小助手

OpenHarmony

hbuilderx打包苹果证书获取步骤

ios开发 Windows证书 ios证书

解析大规模开发:提升企业级开发效率与质量,加速创新

龙智—DevSecOps解决方案

Atlassian Atlassian 云版 大规模开发

工时管理魔法课堂:如何在Jira中进行项目时间与成本管理?

龙智—DevSecOps解决方案

Jira插件 工时管理 jira工时

大数据平台需要做等保测评吗?怎么做?

行云管家

大数据 等保 大数据平台 等级保护 等保测评

[OpenHarmony]效果差、不便捷、无接口,TV项目共建如何避开这些坑?

LAVAL社区小助手

OpenHarmony

ChatGPT:生成式AI的新里程碑

百度开发者中心

#人工智能 ChatGPT 文心一言

系统架构合理性的思考 | 京东云技术团队

京东科技开发者

架构设计 应用架构 企业号 8 月 PK 榜 架构合理性

[OpenHarmony]稳定性专项运作知识地图,一张图带你稳过“万重山”

LAVAL社区小助手

OpenHarmony

生成式AI技术的应用与发展

百度开发者中心

文章 #人工智能 ChatGPT 文心一言

Swift 3来了!_开源_Sergio De Simone_InfoQ精选文章