我正在尝试在 Rust 中实现基于类的格式,它没有类或继承等面向对象的概念。
考虑以下示例:
class Creature {
int id;
bool alive
};
class Human: public Creature {
int salary;
};
class Dog: public Creature {
bool has_fur;
};
如果我想在 Rust 中实现相同的结构,我会这样做:
struct Human {
id: i32,
alive: bool,
salary: i32,
}
struct Dog {
id: i32,
alive: bool,
has_fur: bool,
}
与用 C++ 编写并从基类(或者可能在 JavaScript 中使用原型(prototype))继承的情况相比,重复的结构是否会使应用程序需要更多的内存?该应用程序将拥有数百万个对象。
我猜代码中会有很多重复的成员名称,这本身可能就是一个问题。但是你将如何翻译 Rust 中的数据结构(尽可能减少内存影响)?或者这是要走的路?
最佳答案
不。
类型信息在运行时不保存,因此 struct
s 可以自由创建。
关于class - 结构成员名称是否比我使用继承的类成员使用更多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59720734/