哪个在Ruby中与Delphi SizeOf函数相当?

时间:2010-06-30 03:44:07

标签: ruby-on-rails ruby delphi

我想获得Ruby中变量或类型占用的字节数。是否有与Ruby on Rails中的SizeOf函数相同的东西?

3 个答案:

答案 0 :(得分:2)

从评论中可以看出,Ruby中没有这样的方法。因为你不能直接在Ruby中操作内存而且没有明确的“简单”类型(一切都是对象),并且由于Ruby的动态特性,这种方法无论如何都不会非常有用。

String类的排序有例外。由于在Ruby中字符串是一个字节序列,String#size将返回字符串中数据的大小。

这应该足以用于实际目的,但它内存中的字节数 - 除了数据本身之外,String对象还将有其他内部变量。

还要记住,在运行时可以在Ruby中动态修改所有类和对象,这可以改变使用的内存量。只需考虑将其他实例变量添加到之前不存在的对象的方法。

答案 1 :(得分:2)

如果你试图使你的Delphi代码兼容,那么找到 Ruby的大小对你来说根本不会有帮助。您需要在Ruby代码中使用 Delphi的大小。由于Delphi是静态类型的,SizeOf实际上是一种方便 - 只需制作一个Delphi类型和相应大小的表。如果您有一个数组,请将表中的值乘以元素数。

答案 2 :(得分:1)

标量类型在ruby.c中定义。我不知道如何从Ruby中学习它们的宽度。

添加了:

您可以编写一个使用ruby.c来确定标量大小的C程序。然后从Ruby sw。

调用您的C程序