このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。
一部の高級言語には、プロパティと言う概念がある。
プロパティは、setter と getter を
特別な構文でカプセル化したものだ。
Rectangle rect = new Rectangle();
rect.width = 100;
int value = rect.width;
C# や VB など、Microsoft 系のユーザにはおなじみだが、
Java や C++、Perl などには、それらの概念がない。
Rectangle rect = new Rectangle();
rect.setWidth(100);
int value = rect.getWidth();
public フィールドを使えば、構文的には達成できるのだが、
フィールドへの代入となるため、
代入される値のチェックができないのである。
プロパティのない言語で、アクセサを定義すると、
setXXX や getXXX (isXXX) のメソッドが非常に多くなる。
プロパティに毒された私には、何か違和感を感じてしまう。
これはこれで仕方ないことなのだ。
言語がバージョンアップして、
概念を導入するまで待つしかない。
しかし、例外はある。Perl という言語だ。(またかいな)
Perl も、C++ などと同じく、プロパティの定義はないが、
その構文の柔軟性により、プロパティのようなものを
書くことができるのだ。
最も単純なのは、getter である。
Perl では、関数の呼び出しの括弧を省略することができる。
メソッドの呼び出しの場合でも、
引数さえなければ、括弧を省略することができるのだ。
明日より、Perl における setter/getter を考えてみよう。