我想获得Ruby中变量或类型占用的字节数。是否有与Ruby on Rails中的SizeOf
函数相同的东西?
答案 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程序