オブジェクト指向は愚かな考え。この世は計算式 ★2at TECH
オブジェクト指向は愚かな考え。この世は計算式 ★2 - 暇つぶし2ch692:デフォルトの名無しさん
15/12/25 09:09:22.55 0wm6/WOA.net
>>666 Squeak Smalltalk で。
x := Object new.
"foo で #bar を返すように動的に変更"
x assureUniClass class compile: 'foo ^#bar'.
x foo. "=> #bar "
y := Object new. z := Object new.
"インスタンス変数、アクセッサーを動的に追加"
y assureUniClass class addInstVarName: 'baz'.
z assureUniClass class addInstVarName: 'qux'.
(Browser new setClass: y class selector: nil) createInstVarAccessors.
(Browser new setClass: z class selector: nil) createInstVarAccessors.
y baz: x. z qux: x.
y baz == x. "=> true "
z qux == x. "=> true "
y baz quux. "(デバッガでの動的メソッド追加作業は割愛。そのまま続行) => #quuux "
"クラスの動的な名称変更。変更後もインスタンスは維持"
{x. #X. y. #Y. z. #Z} pairsDo: [:inst :className | inst class rename: className].
{x. y. z} collect: #class. "=> {X . Y . Z} "
{x. y. z} collect: #identityHash. "=> #(3012 2588 1285) "
"永続化"
SmalltalkImage current snapshot: true andQuit: true.
"再起動後もアイデンティティ等維持"
{x. y. z} collect: #identityHash. "=> #(3012 2588 1285) "


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch