ハンドルテーブルの書き換え
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/04 03:18 UTC 版)
「Smalltalk」の記事における「ハンドルテーブルの書き換え」の解説
ハンドルが参照している記憶領域上のテーブルを書き換えることによりSmalltalkは、あるオブジェクトを参照している全ハンドルの参照先を一気に変更することができる。ハンドルテーブルの書き換えには#become:を用いる。ただし、数字や文字列といった定数オブジェクトは置き換えることはできず、定数を置き換える際は定数を保持しているオブジェクトを置き換える必要がある。 | value1 value2 |value1 := 'hello' asValue.value2 := value1. "この時点ではvalue2はValueHolder('hello')"value1 become: 'こんにちは' asValue. "この時点でvalue2はValueHolder('こんにちは')になる" #become:を使っている良い例はクラスオブジェクトの再登録である。Smalltalkではクラスオブジェクトはインスタンスオブジェクトが生きている間でも再登録可能でなければならず、インスタンスオブジェクトを生きたままクラスオブジェクトを再登録するために使われている。
※この「ハンドルテーブルの書き換え」の解説は、「Smalltalk」の解説の一部です。
「ハンドルテーブルの書き換え」を含む「Smalltalk」の記事については、「Smalltalk」の概要を参照ください。
- ハンドルテーブルの書き換えのページへのリンク