Sequence 带来的更多乐趣
作者:Jameson Quave,原文鏈接,原文日期:2016-08-10
譯者:Joy;校對(duì):bestswifter;定稿:千葉知風(fēng)
我想要分享一段來(lái)自 Swift 開(kāi)發(fā)者的簡(jiǎn)短對(duì)話,KS Sreeram 寫(xiě)到:
我試圖通過(guò)下面幾步,通過(guò)最少的數(shù)據(jù)復(fù)制,高效地創(chuàng)建一個(gè)字節(jié)數(shù)組
創(chuàng)建一個(gè)空的字節(jié)數(shù)組。
在數(shù)組中預(yù)留充足的空間。
使用可變指針去做數(shù)組的數(shù)據(jù)填充。
只有數(shù)組被填充之后,才能知道它的實(shí)際大小。
我想要設(shè)置數(shù)組的大小為它被填充的實(shí)際大小。
我還沒(méi)有找到任何有效的方法去完成最后一步。有辦法去這么做嗎?
Dave Abrahams’ 的回應(yīng):
創(chuàng)建一個(gè)序列(Sequence)來(lái)表示你想要填充的數(shù)據(jù),例如:
var a = [1, 2]// a.reserve(256) - swift 2.2a.reserveCapacity(256) // swift 3.0a += sequence(first: 3, next: {$0 < 1000 ? ($0 + 3) * 2 : nil})有很多的方法去創(chuàng)建序列,但是重載的 sequence() 函數(shù)可能是最簡(jiǎn)單的方式。
悲催的:
@jckarter @ericasadun,不幸的是,Dave 的解決方案不適用于序列化代碼,這代碼并不適用于控制反轉(zhuǎn)。
—— KS Sreeram (@kssreeram) 2016 年 8 月 10 日
本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán),最新文章請(qǐng)?jiān)L問(wèn) http://swift.gg。
總結(jié)
以上是生活随笔為你收集整理的Sequence 带来的更多乐趣的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Oracle CPU使用率过高问题处理
- 下一篇: 字符串野指针 百练2681