3
Ruby structs是定義輕量級數據容器的一種便捷方式。我的問題是,它們是否像普通對象或堆棧一樣分配在堆上(例如C#值類型)。如果它們是堆分配的,那麼ruby結構是否有任何性能優勢或缺陷。是否分配了ruby結構堆棧?
Ruby structs是定義輕量級數據容器的一種便捷方式。我的問題是,它們是否像普通對象或堆棧一樣分配在堆上(例如C#值類型)。如果它們是堆分配的,那麼ruby結構是否有任何性能優勢或缺陷。是否分配了ruby結構堆棧?
C#值類型不是堆棧分配的。它們有時是堆棧分配的,有時不是。當您聲明值類型類型的本地值時,它們是堆棧分配的,但是當您聲明值類型類型的類實例字段時,它們不會被堆棧分配。
Ruby結構體是普通的Ruby類,結構類的實例與堆中分配的任何其他類的實例一樣。唯一值類型的Ruby類型是FalseClass
,TrueClass
,NilClass
,Fixnum
和Symbol
。儘管如此,Symbol
是特殊的,因爲實例還必須在符號表中全局分配,同時也是值類型。