Swift 标准库预览版发布
Swift 团队发布了 Swift 标准库预览版(Swift Standard Library Preview),开发者可使用它访问已通过 Swift Evolution 流程并被 Swift 标准库接纳的功能,不过要注意这些新功能尚未作为 Swift 正式版本的一部分提供。
团队已经从最近通过的 SE-0270 提案中为预览版标准库添加了功能,该提案包括对集合子范围的操作,例如subranges(where:)
和 moveSubranges(_🇹🇴)
,以及支持的RangeSet
类型。
使用预览版标准库
要在 Swift Package Manager 项目中使用标准库包,请将其作为包依赖项和目标依赖项添加到Package.swift
文件中:
let package = Package( name: "MyPackage", dependencies: [ .package(url: "https://github.com/apple/swift-standard-library-preview.git", from: "0.0.1"), ], targets: [ .target( name: "MyTarget", dependencies: [.product(name: "StandardLibraryPreview", package: "swift-standard-library-preview")]), ] )
以 SE-0270 作为示例:
import StandardLibraryPreview var numbers = [10, 12, -5, 14, -3, -9, 15] let negatives = numbers.subranges(where: { $0 < 0 }) // numbers[negatives].count == 3 numbers.moveSubranges(negatives, to: 0) // numbers == [-5, -3, -9, 10, 12, 14, 15]
使用独立软件包
Standard Library Preview包正在持续开发中,并且维护的主要版本0
以指示它并不旨在稳定源。如果您需要项目中的源代码稳定性,则每个批准的标准库建议书也可以独立包装提供。预览包实际上是一个伞形库,可重新导出每个单独的包。
预览版标准库正在持续开发中,如果你的项目对于代码稳定性有要求,每个已通过的标准库提案能够以独立软件包的形式提供。例如,SE-0270 提案的功能可通过独立的 SE0270_RangeSet 软件包获得。因此,如果只需要使用 SE-0270,则可以将其作为软件包依赖项和目标依赖项添加到Package.swift
文件中:
let package = Package( name: "MyPackage", dependencies: [ .package(url: "https://github.com/apple/swift-se0270-range-set.git", from: "1.0.0"), ], targets: [ .target( name: "MyTarget", dependencies: [.product(name: "SE0270_RangeSet", package: "swift-se0270-range-set")]), ] )
然后导入 SE-0270:
import SE0270_RangeSet var numbers = [10, 12, -5, 14, -3, -9, 15] let negatives = numbers.subranges(where: { $0 < 0 }) // numbers[negatives].count == 3 numbers.moveSubranges(negatives, to: 0) // numbers == [-5, -3, -9, 10, 12, 14, 15]
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 如何高效地远程部署?自动化运维利器 Fabric 教程
关于 Python 自动化的话题,在上一篇文章中,我介绍了 Invoke 库,它是 Fabric 的最重要组件之一。Fabric 也是一个被广泛应用的自动化工具库,是不得不提的自动化运维利器,所以,本文将来介绍一下它。 Fabric 主要用在应用部署与系统管理等任务的自动化,简单轻量级,提供有丰富的 SSH 扩展接口。在 Fabric 1.x 版本中,它混杂了本地及远程两类功能;但自 Fabric 2.x 版本起,它分离出了独立的 Invoke 库,来处理本地的自动化任务,而 Fabric 则聚焦于远程与网络层面的任务。 为了做到这点,Fabric 主要依赖另一大核心组件 Paramiko,它是基于 SSH 协议的远程控制模块,Fabric 在其基础上封装出了更加友好的接口,可以远程执行 Shell 命令、传输文件、批量操作服务器、身份认证、多种配置与设置代理,等等。 一、Fabric 的版本区分 Python 2 版本已经被官宣在今年元旦“退休”了,未来只会是 Python 3 的舞台。为了适应 Python 版本的非兼容性迁移,很多项目也必须推出自己的新版本(兼容或只支持 Pyth...
- 下一篇
Mozilla 向社区寻求重现 WebRender bug 的方法
Mozilla 的 Firefox Graphics 团队正在向社区寻求帮助,由于他们收到了一些随机发生的 UI 错误报告,却一直无法找出错误的重现步骤(STR),因此现在向外寻求社区用户的帮助。团队表示,找出错误并重现步骤的用户将会获得来自 Mozilla 的限量奖品。 根据 Firefox Graphics 团队的描述,来自 WebRender 的 bug 会导致 Firefox 出现黑色色块,或者是 UI 显示错误,不过开发团队目前还无法找出重现错误的步骤。WebRender 是 Firefox 下一代的 2D 渲染 GPU 引擎,由 GPU 负责核心的渲染工作,以提升图形渲染性能。 据了解,从去年下半年开始,就已经有部分用户反馈新发布的版本中存在随机的 UI 错误。即使团队已经对这些 WebRender 错误进行了一段时间的研究,但仍然无法重现触发错误的步骤。 虽然这些 UI 错误随机发生,但它们仍具有一些相似的地方。当浏览器的 UI 和内容区域出现错误时,滚动页面或将光标停留在这些故障区域,似乎能够使其恢复正常。同样的,当页面出现未知的黑色色块时,滚动页面也能够让这些色块消失...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7设置SWAP分区,小内存服务器的救世主
- Red5直播服务器,属于Java语言的直播服务器
- Docker快速安装Oracle11G,搭建oracle11g学习环境