リストのコピー
作者: 小見 拓
—
最終変更
2012年01月08日 12時08分
リストのコピー
- 単純な代入。変数var1、var2は同じリストを参照している。
:let var1 = [ "aaa", "bbb", "ccc", "ddd" ] :let var2 = var1 :echo var1 :echo var2 "# => ['aaa', 'bbb', 'ccc', 'ddd'] "# => ['aaa', 'bbb', 'ccc', 'ddd'] :let var2[1] = "XXXX" :echo var1 "# => ['aaa', 'XXXX', 'ccc', 'ddd']
- copy()、deepcopy()でリストの複製を作成できる。
:let var1 = [ "aaa", "bbb", "ccc", "ddd" ] :let var2 = copy(var1) :echo var1 :echo var2 "# => ['aaa', 'bbb', 'ccc', 'ddd'] "# => ['aaa', 'bbb', 'ccc', 'ddd'] :let var2[1] = "XXXX" :echo var1 :echo var2 "# => ['aaa', 'bbb', 'ccc', 'ddd'] "# => ['aaa', 'XXXX', 'ccc', 'ddd'] :let var1 = [ "aaa", "bbb", "ccc", "ddd" ] :let var2 = deepcopy(var1) :echo var1 :echo var2 "# => ['aaa', 'bbb', 'ccc', 'ddd'] "# => ['aaa', 'bbb', 'ccc', 'ddd'] :let var2[1] = "XXXX" :echo var1 :echo var2 "# => ['aaa', 'bbb', 'ccc', 'ddd'] "# => ['aaa', 'XXXX', 'ccc', 'ddd']
- copy()はネストしたリスト、ディクショナリまでは複製しない。deepcopy()は複製する。
:let var1 = [ ["aaa", 11], ["bbb",22], ["ccc",33], ["ddd",44] ] :let var2 = copy(var1) :echo var1 :echo var2 "# => [['aaa', 11], ['bbb', 22], ['ccc', 33], ['ddd', 44]] "# => [['aaa', 11], ['bbb', 22], ['ccc', 33], ['ddd', 44]] :let var2[1][0] = "XXXX" :echo var1 :echo var2 "# => [['aaa', 11], ['XXXX', 22], ['ccc', 33], ['ddd', 44]] "# => [['aaa', 11], ['XXXX', 22], ['ccc', 33], ['ddd', 44]] :let var1 = [ ["aaa", 11], ["bbb",22], ["ccc",33], ["ddd",44] ] :let var2 = deepcopy(var1) :echo var1 :echo var2 "# => [['aaa', 11], ['bbb', 22], ['ccc', 33], ['ddd', 44]] "# => [['aaa', 11], ['bbb', 22], ['ccc', 33], ['ddd', 44]] :let var2[1][0] = "XXXX" :echo var1 :echo var2 "# => [['aaa', 11], ['bbb', 22], ['ccc', 33], ['ddd', 44]] "# => [['aaa', 11], ['XXXX', 22], ['ccc', 33], ['ddd', 44]]
Recent Comments
ありがとうございます!
http://nanasi.jp/articles/howto/editing/visualcursor-endtoend.html · 8 years ago
知りませんでした。有難うございました。
http://nanasi.jp/articles/howto/file/open-with-format.html · 9 years ago
<c-f>1ページ分、下にスクロールする<c-b>1ページ分、上にスクロールする
どっちも逆です。
http://nanasi.jp/articles/howto/user-manual/user-manual-motion.html · 10 years ago
set 使用時に : で閉じるのを忘れて右往左往してました。
http://nanasi.jp/articles/howto/file/modeline.html · 11 years ago
やっぱり日本語の方が早いっす。
http://nanasi.jp/articles/howto/help/help_ja.html · 12 years ago