配列操作の比較表:VBScript, VimScript
http://0xcc.net/blog/archives/000043.html
作ってみた。
Ruby (Array) |
VBScript (Array) |
VimScript (list) |
---|---|---|
a = [1, 2, 3] | a = Array(1, 2, 3) | let a = [1,2,3] |
a.length | UBound(a) - LBound(a) + 1 | len(a) |
a.empty? | UBound(a) = -1 | empty(a) |
a.push(x) | ReDim Preserve a(UBound(a) + 1) a(UBound(a)) = x |
call add(a, x) |
a.unshift(x) | call insert(a, x) | |
a.pop | ReDim Preserve a(UBound(a)-1) | unlet a[-1] |
a.shift | unlet a[0] | |
a.concat(b) | call extend(a, b) | |
a.clear | a = Array() | let a = [] |
a.insert(i, x) | call insert(a, x, i) | |
a.delete(x) | ||
a.delete_at(i) | unlet a[i] | |
a.nitems {|e| e == x } | count(a, x) | |
a.include?(x) | count(a, x) != 0 | |
a.index(x) | index(a, x) | |
a.first | a(0) | a[0] |
a.last a[-1] |
a(UBound(a)) | a[-1] |
a[i,l] a.slice(i, l) |
a[i:i+l-1] | |
a[i..j] a.slice(i..j) |
a[i:j] | |
a[i...j] a.slice(i...j) |
a[i:j-1] | |
a.sort | ||
a.sort! | call sort(c) | |
a.reverse | ||
a.reverse! | call reverse(c) | |
a.uniq | ||
a.uniq! | ||
a.join(d) | Join(a, d) | call join(a, d) |
a.each {|x| ... } |
For i=LBound(a) To UBound(a) x = a(i) ... Next |
for i in a let x = a[i] endfor |
VB の言語仕様の中でも配列は最も腐った部分だと思う。
Vim は Python を参考にしただけあって、まあまあ使いやすいリストになっている。