スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Vim scriptで定数

Vim scriptで定数




let A = 10
lockvar A
let A = 20 " 例外


これでできるらしい。

ただし、これでできるのは「変数への書き込み禁止」であって

書き込み禁止を解除することが可能。




let A = 10
lockvar A
unlockvar A
let A = 20 " 通る


なので、強制力はないけど意味力のある変数…って感じになる。



まとめるとこう書ける。




let A = 10 | lockvar A



さらに注意として、間接的に他の辞書などを書き換え禁止できない。


let B = {'bar' : {'baz' : 30}} | lockvar B
let B.bar.baz = 40 " 通る
let C = {'hoge' : [10]} | lockvar C
let C.hoge[0] = 20 " 通る



もちろんこういう対策もできるはできる。


let D = {'ahoge' : [10]} | lockvar D | lockvar D.ahoge[0]




便利。





追記



強者さん達に助言をいただきました。




もしくは



前者の例を使うとこうなります。


let A = {'foo' : {'bar' : 10}} | lockvar 3 A
let A.foo.bar = 20 " 例外



後者の例を使うとこうなります。


let B = {'hoge' : {'baz' : 10}} | lockvar! B
let B.hoge.baz = 20 " 例外



koturnさん、pink_bangbiさん、ありがとうございます!



スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。