我一直在玩swift并遇到以下问题:
var foo: Double = 5
var buffer = malloc(10)
buffer[0] = foo //Does not compile!
如何在数组中为元素指定特定值?
答案 0 :(得分:5)
你正在混合C和swift,malloc(10)没有给你一个Double的数据类型,它给你一种void *我相信,这转化为unsafemutablepointer我相信如果我没记错,有人请更正如果错。
如果你想要一个可变的双打数组,那么你需要做类似
的事情var foo: Double = 5
var buffer = [Double]()
buffer.append(foo)
或
buffer.insert(foo, atIndex: 0)
如果您想保留已分配的内存,请参阅以下有关如何正确设置的答案:
并做这样的事情:
var buffer = UnsafeMutablePointer<Double>(malloc(10))
或用户3441434指出要更清洁的外观
var buffer = UnsafeMutablePointer<Double>.alloc(1)
buffer.dealloc(1)
答案 1 :(得分:1)
你可以创建一个Double
数组var array = [Double](count: 10, repeatedValue: 0.0)
然后为其指定值:
array[9] = 1.23