写点什么

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

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

关注

评论

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

Spring全家桶+高并发编程+Netty,mybatis面试题大全

Java 程序员 后端

Spring学习--面向抽象编程(模拟Spring的简单实现),java架构师教学视频全百度云

Java 程序员 后端

从挣扎突破到英雄联盟!中国SaaS头部企业阵营渐显

海比研究院

SaaS平台

低代码开发平台是什么意思?低代码开发平台优势!

低代码小观

低代码 开发 开发工具 开发平台 企业开发系统

SpringCloudRPC远程调用核心原理:Feign远程调用的执行流程

Java 程序员 后端

云图说|玩转华为HiLens之端云协同AI开发

华为云开发者联盟

华为云 云图说 华为HiLens 端云协同

OpenHarmony LiteOS C-SKY指令集移植指南

华为云开发者联盟

LiteOS 指令集 OpenHarmony C-SKY 移植

SpringDataJPA之快速入门,arm架构v8和V9区别

Java 程序员 后端

Spring常用注解(绝对经典),非科班面试之旅

Java 程序员 后端

SpringCloudRPC调用核心原理:RxJava响应式编程框架,聚合操作符

Java 程序员 后端

使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数

汪子熙

云平台 SAP abap 11月日更

Spring框架底层原理-IoC,java架构师指南pdf下载

Java 程序员 后端

Spring注解驱动,java面试项目中遇到的问题

Java 程序员 后端

Spring常用API:Spring类及相关面试点,rabbitmq分布式事务实现原理

Java 程序员 后端

CSS页面设计稿构思与实现(二)

Augus

CSS 11月日更

springcloud 高可用的服务注册中心及更高可用,java面试设计题

Java 程序员 后端

谈谈对Dapr的一些感想

LLLLimbo

架构 分布式 微服务 云原生 dapr

SpringIOC中复杂属性如何“巧妙”赋值,java五年工作经验面试题

Java 程序员 后端

SpringSecurity安全控件使用指南,建议细读

Java 程序员 后端

Spring事务与事务抽象,java多线程面试总结

Java 程序员 后端

Spring全家桶+高并发编程+Netty(1),Java者升职加薪的8项技能

Java 程序员 后端

【文末送票福利】龙智携手Atlassian,与您相约GOPS全球运维大会

龙智—DevSecOps解决方案

DevOps 运维

springcloud(三)网关zuul,2021Java进阶学习资料

Java 程序员 后端

Spring中使用的设计模式,mybatis自动映射原理

Java 程序员 后端

最佳实践|Apache Pulsar 在华为云物联网之旅

Apache Pulsar

云原生 消息中间件 Apache Pulsar 消息系统 用户案例 华为云物联网

Spring框架(四)SpringMVC基础,2021最新大厂Java面经

Java 程序员 后端

Spring源码学习~循环依赖(面试必问系列,java最新框架技术

Java 程序员 后端

SpringDataJPA的Audit功能,审计数据库的变更,springmvc源码分析pdf百度云

Java 程序员 后端

Spring之防止连接泄露的处理办法,Java开发必会技术

Java 程序员 后端

Spring事务传播属性(面试),分布式中间件技术实战钟林森

Java 程序员 后端

Spring核心——Bean的定义与控制,linuxshell脚本教程

Java 程序员 后端

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