代码之家  ›  专栏  ›  技术社区  ›  Dmitry Dmitriev

红宝石指针

  •  0
  • Dmitry Dmitriev  · 技术社区  · 6 年前

    我刚刚用Ruby解决了一些关于链表的任务。它很有趣,但它需要一些新行。因为如果我通过了 head 在某些函数中,如果更改列表的头,则必须返回新的 从方法并将其重新分配给变量。

    因为如果我有 a 里面,外面

     it "dose not changes if reassign variable in method" do
            a = [1,2]
            def reasign array
                array = [1]
                array
            end
            assert_equal [1], reasign(a)
            assert_equal [1,2], a
        end
    

    我当然可以翘曲 Hash Array 然后保存这个 所以当我改变某个物体的时候。外部变量仍指向对象。这很管用。但还是需要几句台词。

    it "method changes the data into a object" do
        a = [1,2]
        def change_object object
            object.push 3
            object
        end
        assert_equal [1,2,3], change_object(a)
        assert_equal [1,2,3], a
    end
    

    在Ruby中有没有办法使用类似C的指针或类似PHP的引用?

    1 回复  |  直到 5 年前
        1
  •  0
  •   matthewd    6 年前

    用C语言来说,所有的ruby变量引用本质上都是指针(但不是指向指针的指针)。

    你可以改变一个对象(假设它不是不可变的),所有引用它的变量都指向同一个对象(现在已经改变了)。但是改变的唯一方法 哪一个