cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

Vimが参照渡しをするのはリストと辞書だけ。長い文字列はリストに入れて渡す。

kamichidu:
vimの文字列って、代入時にコピーされましたっけ

thinca:
されます
let や引数に渡す際にもコピーされます
苦しみのテクニックとして、巨大な文字列は配列に入れる、というのがあります

kamichidu:
参照がコピーされるのは、関数参照と辞書、リストだけで合ってます?
fmmm

thinca:
配列は参照コピーなので一瞬
関数参照も参照コピーじゃないです…
あれは関数名を文字列で保持している。文字列は当然毎回コピーされる

kamichidu:
39Mのデータが400Mまで膨れた理由、文字列コピーっぽいので

thinca:
Funcref フラグがあるだけで、持ってるものは文字列と同じ

kamichidu:
oh...
なるほど、ありがとうございます

http://lingr.com/room/vim/archives/2014/10/18#message-20422068

関数参照もコピーで渡されていたとは