2

Ruby には「method_missing」、Tcl には「unknown」があり、高度に動的な言語のほとんどには、未定義のメソッドが呼び出されたときに呼び出される同等の構造があります。そのような機能を追加することは完全に理にかなっています。何かが起こる必要があり、プログラマーが何かを再定義することを許可しない理由はありません。追加するのはかなり簡単で、きちんとした「自分の言語で何ができるかを確認する」デモが作成されます。

この動作は、実際のアプリケーション コードのどこで実際に役立つのでしょうか?

私が考えることができるのは次のとおりです。

  • スタックをアンワインドせずにデバッガーを起動するのに役立つかもしれません (ただし、それが「通常のアプリケーション コード」としてカウントされるかどうかはわかりませんが、ほとんどの場合、例外は同様に機能します)。
  • 「魔法の」プロキシオブジェクトの場合..つまり、インターフェースを変更せずに最初の使用時に作成またはロードされる遅延オブジェクト(ただし、これは他の方法で行うのは非常に簡単に思えます)。

他に正当な用途はありますか?

明確化: 私は、「引用符を入力しなくても済むようにするための構文糖衣」が正当な使用法であるとは考えていません。他の人はそうかもしれませんが、私はそうではありません。

4

1 に答える 1

1

動的Webサービスクライアントの実装
http://mpathirage.com/the-importance-of-rubys-method-missing-concept/

于 2010-08-31T19:30:24.143 に答える