Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

[vim] list を操作する function

$
0
0

随時追加します

参照系

get(list, idx)

list の指定した要素を取り出す

echo get([1,2,3,4],2)   " 3

これと同じ

letl=[1,2,3,4]
echo l[2]                    " 3

getは dict に対しても使える。その場合は key に対応する値を返す。

第3引数を指定すると、値が見つからなかった場合のデフォルト値を返す。

echo get([1,2,3,4],10,123)   " 123

empty(list)

list に要素が存在しない場合に 1を返す。存在すれば 0

echo empty([])       " 1
echo empty([1,2])   " 0

ちなみに empty()は list 以外に対しても使える。1を返すケースは以下の通り。

empty({})       " dictの場合は item が存在しない
empty(0)        " 数値の場合は 0
empty(v:false)  " empty と判断される特殊な値
empty(v:null)

要素の追加・削除

insert(list, item, idx)

list の先頭に item を追加する。 idx を指定すると、その場所に追加する。

letl=[1,2,3,4]call insert(l,5)
echo l              " [5,1,2,3,4]call insert(l,6,2)
echo l              " [5,1,6,2,3,4]

add(list, item)

list の末尾に item を追加する。
item はあくまで1つの要素として扱われる。 item として list 型を指定すると、要素は1つ増えることに注意。
(複数の要素を追加したい場合は次の extendを使う)

letl=[1,2,3]call add(l,4)
echo l                  " [1,2,3,4]call add(l,[10,20])
echo l                  " [1,2,3,4,[10,20]]

extend(list1, list2)

list1 の後ろに list2 を追加する。

letl=[1,2,3]call add(l,[11,12,13]
echo l                    " [1,2,3,11,12,13]

dict 版の extend(dict1, dict2)もある。

remove(list, idx)

指定位置の要素を list から削除し、削除された値を返す。
要素がない場合エラーとなるので注意。

letl=[1,2,3]letv= remove(list,1)
echo v                    " 2letv= remove(list,100) " error

Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>