vim repeat() 疑问 [解决]

Vim、Emacs配置和使用
回复
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

vim repeat() 疑问 [解决]

#1

帖子 自由建客 » 2011-05-25 19:50

代码: 全选

:let MyList=[{}, {}, {}, {}, {}, {}, {}]
:echo MyList
[{}, {}, {}, {}, {}, {}, {}]
:let MyList=repeat([{}], 7)
:echo MyList
[{}, {...}, {...}, {...}, {...}, {...}, {...}]
:for item in MyList
:  echo len(item)
0
:  endfor
0
0
0
0
0
0 
两种定义方法,echo 显示结果竟然不同。
上次由 自由建客 在 2011-05-26 16:57,总共编辑 1 次。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim repeat() 疑问

#2

帖子 lilydjwg » 2011-05-25 20:49

因为它们本来就是不同的。第一个定义了这么个列表,它包含七个元素,每个元素都是一个不同的字典(就像七个不同的人);第二个定义了这么个列表,它包含七个元素,每个元素都是同一个字典(就像一个人的七个不同的名字)。

我建议你看下 Python 的教程(你想学 C 也行),毕竟 VimL 太小众了,又没有入门教程。

PS: 那个显示似乎是检测循环引用之类的处理代码的 bug。
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: vim repeat() 疑问

#3

帖子 自由建客 » 2011-05-26 16:56

lilydjwg, 引用! :em20
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim repeat() 疑问

#4

帖子 lilydjwg » 2011-05-26 20:56

自由建客 写了:lilydjwg, 引用! :em20
原来你知道这个概念。。。。
回复