在Ruby中,我可以引用数组偏移量吗?

时间:2010-08-12 03:48:24

标签: ruby reference offset

  1. 在Ruby中,我可以做类似C的事情,就像这样(用我的虚拟运算符'&'):

    a = [1,2,3,4]并且b =& a [2],b => [3,4],如果我设置b [0] = 99,a =>并[1,2,-9,4]

  2. 如果数组的元素是整数,那么Ruby是否必须将它们连续存储在一个 连续的记忆部分?我猜“不”,只存储地址,整数存在 对象,就像Ruby中的其他所有东西一样。

  3. 如果对#2的回答是“是”(我怀疑),有没有办法有效地转移块 例如,在C中可以做的事情。

1 个答案:

答案 0 :(得分:2)

Ruby中没有这样的功能(Ruby数组不是由cons单元构建的,并且使得地址比Ruby运行的程度要低得多),但老实说,写这样的东西并不难。

回答第二个问题:它不一定是一个连续的整数数组。 MRI将整数视为立即值(最低有效位作为指示单词是表示整数还是对象地址的标志),因此它可能会以这种方式存储它。其他实现以自己的方式完成。