【问题标题】:Swift: fast string buildingSwift:快速构建字符串
【发布时间】:2014-07-03 22:40:59
【问题描述】:

我正在尝试编写一些 Swift 代码来将性能与我的 Obj-C 代码进行比较。

我有一个 UnicodeScalar 数组(缓冲区),我想将其转换为 String 对象。

let range = _peekBuffer[_peekBufferPos .. _peekBufferPos + length]
var retval = ""
for c in range {
    retval += Character(c)
}
return retval

由于各种原因,性能很差,但我还没有找到更好的方法在 Swift 中构造字符串。我将尝试下降到 NSString,然后可能是 CFString(这有点令人失望,因为我正在尝试用纯 Swift 编写),但我想知道是否有人遇到任何其他“快速”创建字符串的选项。

【问题讨论】:

  • 使用NSMutableString。你不能用纯 Swift 编写任何有用的代码。
  • 如果您尝试做的特定事情表现不佳,file a bug

标签: string performance swift


【解决方案1】:

我还没有找到将 UnicodeScalars 数组转换为 String 的方法,但您可以将 UnicodeScalars 转换为 Characters 数组,然后将 Characters 数组转换为 String:

var characters = [Character]()
for unicodeScalar in range {
  characters.append( Character(unicodeScalar) )
}
return String( characters )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-31
    • 2015-01-26
    • 2019-04-30
    • 2013-01-20
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多