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

相關文章
相關標籤/搜索