![]() |
1
11
这个问题有很多问题。最重要的是
赋值从不在Ruby中生成副本,但方法通常返回新对象,而不是修改现有对象。
. 对于像fixnums这样的不可变对象,可以忽略它,但是对于数组或foo实例这样的对象,要制作副本,必须执行以下操作
对于数组示例,
|
![]() |
2
3
我不知道Ruby如何在内部处理其他事情,但您可以尝试使用
|
![]() |
3
2
你从不处理复印件。它在内存中是同一个对象,但是您只声明了对它的两个引用:在第一个示例中:bar和beans指向内存中的同一个对象;在第二个示例中:foo和baz最初指向内存中的同一数组。 查看2个图片/图片,在Java教程页面中解释机制(它与Ruby相同)和2个图片,比任何解释都要值钱: http://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html |
![]() |
4
0
basicly ruby使用的是引用指针,所以当您更改一个对象时,另一个对象也会受到影响。 |
![]() |
Stilian · 存储库设置中没有Github页面部分 3 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 3 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 3 年前 |
![]() |
johncssjs · 将数组转换为每个元素的嵌套哈希 3 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 3 年前 |