K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]


新規投稿 | 開設者ホームページへ戻る | ヘルプ


[1900] Re:diksamの実装に関して
返信


投稿者:(ぱ)こと管理人
2015/02/24 02:58:14

Link:
>"プログラミング言語を作る"の8-4-9章の
>A instance of B
>の記載に関してです。
>
>A、Bがクラスの場合、
>AとBが同じクラスか、AがBのスーパークラスの場合のみ、
>真になる可能性がある、
>とあります。

こちらは説明が不適切な気がしてきました……

たとえばShapeクラスのオブジェクトshapeがあったとき、

shape instanceof Circle

という式は、「真になる可能性がある」と言えます。
instanceofは、こうしてクラスをチェックするために使うものでしょう。
全然違う、circle instanceof Windowなら、そもそもコンパイルエラーです。
ここで「真になる可能性がある」と書いているのはそういう意味です。

逆に

circle instanceof Shape

は、常に真です。常に真ならそれもやっぱり真になるのではないか、
というところですが、その下の説明にあるように、そもそもDiksamは
こういうコードは無駄なのでコンパイルエラーにしています。

そういう意味で、実行時にチェックする価値がある、ということで
「真になる可能性がある」と書いたのかもしれませんが、それにしては
「AとBが同じクラスか」部分が余計です。クラスが同じならやっぱり
無駄だからです。

今は時間が時間なので、後日(週末をめどに)正誤表に載せるなり対応を考えます。

ご指摘ありがとうございました。
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[ より新しい投稿] [ より古い投稿]