博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift 3.1改进了语言、包管理器和Linux实现
阅读量:6905 次
发布时间:2019-06-27

本文共 1009 字,大约阅读时间需要 3 分钟。

在语言方面,Sequence协议:drop(while:)prefix(while:)。在特定谓词为True时,可通过丢弃或包含序列初始元素的方式返回所获得的子序列。因此如果有一个序列s,可通过执行下列命令获取其n-th到m-th子序列:

let subseq = s.prefix(while: {$0 \\

Swift 3.1还为所有数值类型增加了多个,包括IntFloat,以及Double类型,借此可产生正确的结果,或返回nil。所谓的可失败构造器(Failable initializer)是为了更好地解决松散类型化数据的转换问题,例如JSON格式所包含的数据。借此所有数值类型获得了一个可以使用exactly关键字的全新构造器,例如:

\\
init?(exactly value: Int64)
\\

根据,可失败的构造器是可抛出异常的构造器的首选做法。

\\

虽然官方新闻稿中并未提及,但更新后的文档中,类型扩展现已可包含泛型where子句:

\\
extension Container where Item == Double {\    func average() -\u0026gt; Double {\        var sum = 0.0\        for index in 0..
\\

以前,where子句只能用作将泛型约束给特定协议,这可能导致仅仅为了指定所需约束而引入ad-hoc协议:

\\
extension Container where Item: MyConstrainProtocol {\...
\\

在语言方面还有一个改动需要注意,Swift 3.1对@available特性进行了扩展,可用于表达,而以前只能按照语言和平台来指定可用性:

\\
@available(swift, introduced: 3.0, obsoleted: 3.1)\class Foo {\  //...\}
\\

借此开发者无须使用条件式编译即可判断函数、声明等的候补版本。

\\

Swift的Linux实现对现有的各种类进行了改进,包括NSDecimalURLSessionNSArrayNSData,同时改进了JSON序列化的性能,并在其他方面有诸多改进。

\\

最后,Swift Package Manager也提供了用户期待已久的很多功能,例如:

\\

转载地址:http://rfmdl.baihongyu.com/

你可能感兴趣的文章
javascript js 判断页面是否加载完成
查看>>
【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集
查看>>
最新的goldengate monitor 12.1.3已经发布
查看>>
ASP.NET防止用户多次登录的方法
查看>>
2D多边形碰撞器优化器
查看>>
webBrowser 模拟登录
查看>>
idea 配置多个tomcat
查看>>
weblogic 整合cxf 报错:cannot create a secure XmlInputFactory
查看>>
Nancy 返回值详解
查看>>
架构思维案例:速学正则
查看>>
记录一则FGA审计“A用户对B用户某张表的更新操作”需求
查看>>
IntelliJ IDEA优秀插件(编程通用)
查看>>
API返回错误信息的最佳实践
查看>>
AngularJS实现三级Table列表
查看>>
scala sortBy and sortWith
查看>>
请求合并哪家强
查看>>
nodejs检查已安装模块
查看>>
solr联合多个字段进行检索(multivalued和copyfield的使用)
查看>>
准备PPT过程中的一些文档记录
查看>>
Catel(翻译)-为什么选择Catel
查看>>