写点什么

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:003297
用户头像

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

关注

评论

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

Wallys/ AR9531/WiFi Card/ MMCX

wallys-wifi6

AR9531 30dBm high power

区块链Web3招聘:海量开发产品岗位等你来 Pick

TinTinLand

区块链

DPU芯片企业中科驭数加入龙蜥社区,构建异构算力生态

OpenAnolis小助手

芯片 生态 龙蜥社区 CLA 中科驭数

小红书信息流推荐多样性解决方案

小红书技术REDtech

推荐 SSD 多样性 KDD

中国电子云数据库 Mesh 项目 DBPack 的实践

峨嵋闲散人

分布式事务 分库分表 读写分离

云数赋能+数字办公 助力政企数字化

对话上市公司数字化转型:激活数据要素 倍增数字价值

WorkPlus

大画 Spark :: 网络(7)-Spark网络中的“四次握手”Executor注册到Driver过程中的TransportClient与细节过程

dclar

大数据 hadoop spark 架构设计 源代码

性能提升 57% ,SMC-R 透明加速 TCP 实战解析 | 龙蜥技术

OpenAnolis小助手

互联网 网络协议 高性能 TCP/IP 龙蜥技术

Neo 生态技术月报 | 助力开发者玩转智能合约

TinTinLand

区块链

墨天轮访谈 | 京东云曲艺伟:京东零售核心业务背后的数据库实践

墨天轮

数据库 京东云 国产数据库

【直播回顾】如何成为一名优秀的OpenHamrony贡献者?

OpenHarmony开发者

OpenHarmony 贡献代码

设计模式关系图(全网首发)之结构和创建模式

设计模式

《方博碳讨室》:四问欧洲绿色能源转型

Geek_2d6073

直播回顾 | 后疫情时代,食品行业破局秘籍get一下!

旺链科技

区块链 溯源 产业区块链

Hoo网格策略 | 一「网」在手 告别「追涨杀跌」

区块链前沿News

虎符 Hoo 网格交易

银行需明确低代码与无代码开发平台差异,以在技术上降低试错成本

易观分析

银行

阿里云张新涛:异构计算为数字经济提供澎湃动力

阿里云弹性计算

XR 元宇宙 视觉计算

类似 Teambition 的9大最佳项目管理软件

爱吃小舅的鱼

当我们谈论服务质量的时候,我们在谈什么?

VoltDB

5G QoS 电信运营商

DeFi挖矿智能合约Dapp系统开发搭建

薇電13242772558

智能合约

【LeetCode】爬楼梯的最少成本Java题解

Albert

算法 LeetCode 5月月更

“晕乎乎的概念”:阿里云函数计算的“应用”又是个啥

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

Liga 讨论: ToB产品可不可以免费?

LigaAI

SaaS

直播预告丨OpenHarmony标准系统多媒体子系统之视频解读

Anna

OpenHarmony

首发!高性能数据访问中间件 OBProxy(一):功能模块及特性详解

OceanBase 数据库

oceanbase

超潜力公链DFINITY——DeFi 开发者最佳进入时期

TinTinLand

区块链

LinkedList 源码分析-新增

zarmnosaj

5月月更

mark:vscode 无法远程访问连接

webrtc developer

vscode

AIRIOT物联网低代码平台如何配置欧姆龙omron驱动?

AIRIOT

低代码 物联网 驱动配置

【达人专栏】还不会用Apache Dolphinscheduler吗,大佬用时一个月写出的最全入门教学【二】

Apache DolphinScheduler

Apache 大数据 开源 workflow dophinscheduler

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