![]() |
zunbe |
![]() |
|
![]() |
配列名と変数名 | Oracle 9i | ![]() |
2005/07/16
ずんべは、プログラムを書くとき goto をよく使う。 たとえば、こんなコードである。 ----- // コンストラクト ret = FALSE; // 本処理 fp1 = fopen(fname1, "r"); fp2 = fopen(fname2, "r"); // その他処理 ret = TRUE; DO_ERROR: // デストラクト if (fp2 != NULL) if (fp1 != NULL) return ret; goto は、諸悪の根源だとよく言われる。 上記のコードがそうである。 ■「コンストラクト」のブロック ■「本処理」のブロック ■「デストラクト」のブロック gotoを使う事によって、関数レベルで「コンストラクト」「本処理」「デストラクト」という、オブジェクト指向の基本的な考え方が実現できている。 また、原則として、処理の流れは一直線に下に延びるので、コードの可読性が非常に高い。 更に、このコードは、メンテナンス性も高い。 ・引数および変数「fp3」を追加。 ネストをいじる必要もなければ、終了処理をいろいろなところで追記する必要もない。 もちろん、上記のコードがあらゆるパターンの開発に当てはまるとは思わないが、gotoも使い方によっては非常に有用である事を、言語仕様を策定する識者の方に知っていただきたいと思う。
投稿者 zunbe : 2005/07/16 04:59:26
|
|
|