Previous: Impl of Scope, Up: Variable Scoping
ある関数で変数を束縛し別の関数でそれを使うことは、強力な技法ですが、 なんの制限もせずに使うとプログラムを理解し難いものにしてしまいます。 この技法を見通しよく使うための2つの方法があります。
他のプログラマに対して、彼らがそのような変数を目にするまえに、 そのような変数の使い方がわかるようなコメントを書き、 他の場所では使わないように助言しておく。
case-fold-search
は、
『nil
以外であれば探索時に大文字小文字を区別しない』と定義されている。
さまざまな探索関数や置換関数が、この変数を直接に、あるいは、
サブルーティンを介して参照するが、
この変数を束縛したり設定したりしない。
こうしておいて別のプログラムで変数を束縛するが、 それにどのような効果があるか確実に知ってから行える。
いずれの場合でも、変数はdefvar
で定義するべきです。
これは、関数間での変数の使い方を見るように伝えることで、
他人が読者のプログラムを理解するのを助けます。
また、バイトコンパイラからの警告も防ぎます。
変数名が衝突しないようにも注意しましょう。
x
のような短い名前を使わないでください。