【问题标题】:In Ruby, can I make a reference to an array offset?在 Ruby 中,我可以引用数组偏移量吗?
【发布时间】:2010-08-12 03:48:23
【问题描述】:
  1. 在 Ruby 中,我可以做类似 C 的事情吗,像这样(使用我虚构的运算符 '&'):

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

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

  3. 如果 #2 的答案是“是”(我对此表示怀疑),有没有办法有效地转移 内存,就像在 C 中可以做的那样。

【问题讨论】:

    标签: ruby reference offset


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 1970-01-01
      • 2019-09-13
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 2022-07-04
      • 2023-03-26
      • 2012-03-29
      相关资源
      最近更新 更多