Sequence 带来的更多乐趣

做者:Jameson Quave,原文连接,原文日期:2016-08-10
译者:Joy;校对:bestswifter;定稿:千叶知风swift

我想要分享一段来自 Swift 开发者的简短对话,KS Sreeram 写到:数组

我试图经过下面几步,经过最少的数据复制,高效地建立一个字节数组函数

  1. 建立一个空的字节数组。ssr

  2. 在数组中预留充足的空间。翻译

  3. 使用可变指针去作数组的数据填充。指针

  4. 只有数组被填充以后,才能知道它的实际大小。code

  5. 我想要设置数组的大小为它被填充的实际大小。ci

我尚未找到任何有效的方法去完成最后一步。有办法去这么作吗?开发

Dave Abrahams’ 的回应:get

建立一个序列(Sequence)来表示你想要填充的数据,例如:

var a = [1, 2]

// a.reserve(256) - swift 2.2

a.reserveCapacity(256) // swift 3.0

a += sequence(first: 3, next: {$0 < 1000 ? ($0 + 3) * 2 : nil})

有不少的方法去建立序列,可是重载的 sequence() 函数多是最简单的方式。

悲催的:

@jckarter @ericasadun,不幸的是,Dave 的解决方案不适用于序列化代码,这代码并不适用于控制反转。
—— KS Sreeram (@kssreeram) 2016 年 8 月 10 日
本文由 SwiftGG 翻译组翻译,已经得到做者翻译受权,最新文章请访问 http://swift.gg

相关文章
相关标签/搜索