我现在的情况比较棘手,我有一个非常大的内存块,它是由UnsafeBufferPointer表示的,而我需要将其表示为Array。现在,Swift标准库提供了一个初始化器,可以从任何给定的序列中复制元素,但它没有直接提供底层存储的方法。 有没有办法将UnsafeBufferPointer“转换”为Array,同时避免复制?
struct UnsafeBufferPointer<Element> { ... } 一个非拥有者的指针,指向在内存中连续存储的元素缓冲区,提供底层元素的集合接口。init(start: UnsafePointer<Element>, count: Int) 构造一个UnsafePointer,该指针从start开始覆盖count个连续的Element实例。该构造函数不会在任何地方复制任何内容。它也不会创建任何内存分配。
UnsafeBufferPointer
创建一个Array
。我已经知道了UnsafeBufferPointer
的工作原理。 - Vatsal Manot