代码之家  ›  专栏  ›  技术社区  ›  Cary Swoveland

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

  •  1
  • Cary Swoveland  · 技术社区  · 15 年前
    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 回复  |  直到 15 年前
        1
  •  2
  •   Chuck    15 年前

    Ruby中没有这样的功能(Ruby数组不是由cons单元构建的,并且获取地址的级别要比Ruby操作的低得多),不过老实说,编写这样的代码并不难。

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