コンストラクター内のメソッドを使用してクラスを動的に拡張する可能性は Itcl にありますか?
動的に生成される関数がいくつかあります...
彼らはどういうわけかこのように見えます:
proc attributeFunction fname {
set res "proc $fname args {
#set a attribute list in the class
}"
uplevel 1 $res
}
これで、可能な属性のリストを含むファイルができました。
attributeFunction ::func1
attributeFunction ::func2
attributeFunction ::func3
...
このファイルはソースになります。しかし、今まではグローバル関数を追加していました。これらの関数をメソッドとして Itcl オブジェクトに追加する方がはるかに優れています。
少し背景情報:
これは、ユーザーがこれらの属性を他のキーワードなしで記述して簡単に追加できる抽象言語を生成するために使用されます。ここで関数を使用すると、見逃したくない多くの利点が得られます。