From: KIMURA Koichi Date: 2008-01-07T17:09:46+09:00 Subject: [ruby-dev:32949] Re: replica と alias の違い(encoding) 木村です。 まつもとさん、(う)さん、ありがとうございます。 重箱の隅で申し訳ないんですが、一点確認させてください。 On Mon, 7 Jan 2008 15:06:19 +0900 Yukihiro Matsumoto wrote: > |レプリカ → 実体をコピーするしてそのコピーに名前をつける > |エイリアス → 実体を共有した上で名前をつける > | > |かなあと思ったのですが、実際のコードを見ても自信がないので解説を > |していただけるとありがたいです。ここを見ろというポインタ指示でも > |かまいません(英語でかかれていても可です)。 > > それで構いません。レプリカはコピーをした後で関数のいくつかを > 上書きすることも可能です。 On Mon, 7 Jan 2008 15:14:10 +0900 "U.Nakamura" wrote: > m17nではこの違いがどう影響するかというと、transcodeでの変換処 > 理において、replicaは元のエンコーディングと別の変換ルーチンを > 割り当てることが可能(同じままでもいいんだけど)ですが、aliasで > はそれができないとか、alias同士は同一のエンコーディングとみな > されるというか実際同一なのでStringオブジェクトの操作などで問 > 題は起きないけれどreplicaでは同一ではないので例のdifferなエラ > ーが起きるとか、そういうことになります。 alias をつくり、それに対してたとえば関数を上書きした場合に、 ・例外もしくはエラーが発生する ・操作自体は通るけど何が起こるかわからない のどちらでしょうか? また、あるエンコーディングのreplicaを作成し、その後でそのreplicaに 対する aliasを作成してからそのaliasに対して操作、例えば関数の上書き を行った場合はどうなりますか? #システムに元からあるものの上書きはダメでも、そのコピーに対する #操作は可能かどうかという趣旨です。 -- 木村浩一