5

我正在为一些 C 库编写包装器。是否可以将 UnsafePointer 用于不可变结构?对于可变结构,这不是问题:

func Foo_get(ptr : UnsafePointer<Foo>) {
    //does not mutate
}

struct Foo {
    //big data

    mutating func get1() { //inconvenient
        Foo_get(&self)
    }

    func get2() { //unnecessary copy
        var copy = self
        Foo_get(&copy)
    }
}

但这两种解决方案都不理想。

4

0 回答 0