R,深层副本与浅层副本,通过引用传递

问题描述 投票:18回答:2

我想了解R在将参数传递给函数,创建变量的副本等有关内存使用情况时使用的逻辑。它实际上何时创建变量的副本,而只是传递对该变量的引用?我特别想知道的情况是:

f <- function(x) {x+1}
a <- 1
f(a)

a是从字面上传递还是对要传递的引用?

x <- 1
y <- x

引用副本?什么时候不是这种情况?

如果有人可以向我解释这一点,我将不胜感激。

r reference copy deep-copy data.table
2个回答
15
投票

当它传递变量时,总是通过复制而不是引用。但是,有时直到真正发生分配,您才能获得副本。该过程的真实描述是无条件的。看一下文档


0
投票

最新答案,但是语言设计的一个非常重要的方面,它在网络上(或至少是常用资源)没有得到足够的报道。

© www.soinside.com 2019 - 2024. All rights reserved.