我必须在我的Swift项目中初始化一个16字节的零数组。在Java中,使用以下代码很容易初始化16字节数组:
new byte[16]
我需要在Swift中使用相同的代码实现。 非常感谢您提供任何帮助。 祝你有个美好的一天!
答案 0 :(得分:3)
使用UnsafeMutablePointer。我想象UInt8
可能最接近Java的byte
,因此您可以为其中的20个分配空间并将其初始化为0
,如此... < / p>
let ptr = UnsafeMutablePointer<UInt8>.alloc(20)
ptr.initialize(0)
修改:感谢vacawama
您还可以使用Swift数组和&
运算符将其转换为指针,这在语法上更好......
var arr = [UInt8](count: 20, repeatedValue: 0)
doSomething(&arr)
这两种方法在功能上是等效的,因为&
会将数组转换为引擎盖下的UnsafeMutablePointer
。
注意:请注意,我在第二个示例中使用了var
关键字来定义数组,以便&
运算符将其转换为UnsafeMutablePointer
UnsafePointer
。否则,如果您尝试改变内存