Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Ruby结构是定义轻量级数据容器的便捷方式。我的问题是它们是像普通对象一样在堆上分配还是在堆栈上分配(例如,在 C# 值类型中)。如果它们是堆分配的,那么 ruby 结构是否有任何性能优势或缺陷。
C# 值类型不是堆栈分配的。它们有时是堆栈分配的,有时不是。当您声明值类型类型的本地值时,它们是堆栈分配的,但当您声明值类型类型的类实例字段时,它们不会堆栈分配。
Ruby 结构是普通的 Ruby 类,结构类的实例就像任何其他类的实例一样,分配在堆上。唯一属于值类型的 Ruby 类型是FalseClass、TrueClass、NilClass、Fixnum和Symbol。Symbol但是,这是特殊的,因为实例还必须在符号表中全局分配,同时又是值类型。
FalseClass
TrueClass
NilClass
Fixnum
Symbol