2010-06-30 27 views
2

我想在Ruby中獲取變量或類型佔用的字節數。 Ruby on Rails中是否有與SizeOf函數等效的函數?在Ruby中,它與Delphi SizeOf函數中的等價物是什麼?

+0

相當於什麼?我假設C. – Adrian 2010-06-30 03:48:46

+0

虛擬內存不足? :-) – 2010-06-30 03:48:56

+0

這是爲了調試目的還是什麼? Ruby中沒有這種方法,所以告訴我們你想完成什麼可能會幫助人們提供一種方法來實現它。 – Chuck 2010-06-30 03:50:22

回答

1

標量類型在ruby.c中定義。我不知道從Ruby內部學習寬度的方法。

補充:

你可以寫一個使用ruby.c確定標量大小的C程序。然後從你的Ruby sw中調用你的C程序。

+0

我不知道該怎麼做:( – Jett 2010-06-30 09:52:58

2

正如您從評論中看到的,Ruby中沒有這樣的方法。既然你不能直接在Ruby中操縱內存,並且沒有明確的「簡單」類型(一切都是對象),並且由於Ruby的動態特性,這種方法無論如何都不會很有用。

類有String類的例外。由於在Ruby中字符串是字節序列,因此String#size將返回字符串中數據的大小。

這應該足夠實用,但它是而不是內存中的字節數 - 除了數據本身外,String對象還會有其他內部變量。

另外請記住,在運行時可以在Ruby中動態修改所有的類和對象,這可以改變使用的內存量。試想一下將其他實例變量添加到之前沒有的對象的方法。

2

如果你想讓事情與你的Delphi代碼兼容,比找到Ruby的大小根本沒有幫助你。您需要在您的Ruby代碼中使用Delphi的大小。由於Delphi是靜態類型的,所以SizeOf真的很方便 - 只需製作一個Delphi類型和相應大小的表格即可。如果您有數組,請將表中的值與元素數相乘。

相關問題