创建对象的引用

The*_*heo 3 r

问题 R是否包含对象的引用概念.

在python中,一个相等的运算符实际上是一个引用副本.例如:

>> a = [1,2,3]
>> b = a
>> b[1] = 10
>> a
   [1, 10, 3]
Run Code Online (Sandbox Code Playgroud)

或者在C++中

 vector a(3);
 a[1] = 1;
 vector& b = a;
 b[1] = 10;
 // now a[1] = 10
Run Code Online (Sandbox Code Playgroud)

Spa*_*man 5

您应该查看引用类,但也可以使用普通的旧环境:

> a=new.env()
> a$data=c(1,2,3)
> b=a
> b$data
[1] 1 2 3
> a$data[1]=99
> b$data
[1] 99  2  3
Run Code Online (Sandbox Code Playgroud)

a并且b是相同的环境:

> a
<environment: 0xa1799fc>
> b
<environment: 0xa1799fc>
Run Code Online (Sandbox Code Playgroud)

所以他们的内容是相同的对象.

我认为其他一些R OO系统(R.oo,proto?)使用这样的环境来实现OO对象和方法.

所以,虽然你可以这样做,但像这样的远距离动作可能会导致很难发现错误,你可能不应该这样做.