我正在写一个系统,我有一个Objects 的集合,每个Object都有一个唯一的整数ID.这是我在C++中如何做到这一点:
class Object {
public:
Object(): id_(nextId_++) { }
private:
int id_;
static int nextId_;
}
int Object::nextId_ = 1;
Run Code Online (Sandbox Code Playgroud)
这显然不是thread_safe,但如果我想要它,我可以创建nextId_一个std::atomic_int,或者在nextId_++表达式周围包装一个互斥.
我怎么做(最好是安全的)Rust呢?没有静态struct成员,全局可变变量也不安全.我总是可以nextId进入new函数,但是这些对象将被分配到很多地方,我宁愿nextId不管这个数字和yon.思考?
rust ×1