我必须在我的 Swift 项目中初始化一个 16 字节的 Zeros 数组。在 Java 中,使用以下代码很容易初始化 16 字节数组:
new byte[16]
我需要在 Swift 中实现相同的代码。 非常感谢您的帮助。 祝你有美好的一天!
最佳答案
使用 UnsafeMutablePointer .我想 UInt8
可能最接近 Java 的 byte
,因此您可以为其中的 20 个分配空间并将它们初始化为 0
,就像这样。 ..
let ptr = UnsafeMutablePointer<UInt8>.alloc(20)
ptr.initialize(0)
编辑:感谢 vacawama
您还可以使用 Swift 数组和 &
运算符将其转换为指针,这在语法上更好一些...
var arr = [UInt8](count: 20, repeatedValue: 0)
doSomething(&arr)
这两种方法在功能上是等价的,因为 &
会将数组转换为底层的 UnsafeMutablePointer
。
注意:请注意,我在第二个示例中使用了 var
关键字来定义数组,以便 &
运算符将其转换为UnsafeMutablePointer
而不是 UnsafePointer
。否则,如果您试图改变内存,您将得到一个神秘的编译器错误
关于swift - 在 swift 中创建一个 16 字节的零数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36459726/