После ответа о tracemem
недавно я узнал о retracemem
.Помощь для ?retracemem
и приведенный в ней пример оставляют меня неосведомленным.
Что на самом деле делает retracemem
и почему?Он не делает то, что, как я думал, будет делать, т. Е. Указывает один объект на область памяти другого, по крайней мере, насколько я могу судить.
Я пробовал магический вызов, такой как .Internal(inspect())
, которыйдля меня нет магии:
> a = 1:10
> b = a[-1]
> .Internal(inspect(a))
@00000000087AE578 13 INTSXP g0c4 [NAM(2)] (len=10, tl=23336) 1,2,3,4,5,...
> .Internal(inspect(b))
@00000000087AE8E8 13 INTSXP g0c4 [NAM(2)] (len=9, tl=7208) 2,3,4,5,6,...
> retracemem(b,retracemem(a))
> .Internal(inspect(b))
@00000000087AE8E8 13 INTSXP g0c4 [NAM(2)] (len=9, tl=7208) 2,3,4,5,6,...