在将全局变量添加到列表时,vim是否将此变量添加为动态列表?
输入:
g:ListTotal = []
let g:mylist = ['hi','2','','']
call add(g:ListTotal, g:mylist)
echo g:ListTotal
-> ['hi','2','','']
=>好的
然后在脚本g:mylist
中更改pe
let g:mylist[0] = 'hello'
echo g:mylist
-> = ['hello','2','','']
=>确定
再次将此列表添加到g:ListTotal:
call add(g:ListTotal, g:mylist)
:echo g:ListTotal
->
输出:
[['hello','2','',''],['hello','2','','']]
预期产量:
[['hi','2','',''],['hello','2','','']]
将列表添加到另一个列表时,vim会动态更新吗?
如何将列表静态添加到另一个列表?
我相信列表变量只是指向列表的指针,因此添加到列表只需添加该指针,这就是为什么更改看起来会同时更改两者。
如果您想要一个唯一列表,则可以复制该列表。
call add(g:ListTotal, copy(g:mylist))
或者
call add(g:ListTotal, deepcopy(g:my list))
阅读:h copy()
和:h deepcopy()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句