VisualBasic6.0です。
戻り値がある関数を作る場合の書き方(以下のコード)です。
例)
Private Function CheckData() As Boolean
' ①
CheckData = True
' ②
If CheckData Then
CheckData = True
Else
CheckData = False
End If
End Function
②のところで関数名をそのまま判断に使用していますが、
こういう書き方はまずくないでしょうか?
(再帰処理にはなりませんが・・・)
コーディングスタイルとしての善し悪しは別として、
言語仕様的には、そのような書き方でも、特に問題ありません。
その場合の関数名は、ローカル変数のように扱われます。
ただし、今回のような『If CheckData Then』ならば構いませんが、
『If CheckData() Then』と書くと再帰される点には注意してください。
特に問題はなかったんですね。
ありがとうございました。
>『If CheckData() Then』と書くと再帰される点には注意してください。
はい。そう記述すると再帰処理されたのでどうかと思ってました。
>コーディングスタイルとしての善し悪しは別として、
プログラムの例がわるいですが、こういった書き方はよくないでしょうか?
>こういった書き方はよくないでしょうか?
自分(の会社のコーディング規約など)で決めればいい事だと思います。
ボクの場合は、ちょっとした書き間違いで無限ループになる
可能性がある点。関数名が変更になったときに内部の複数の
場所で関数名を置換する必要がある点。ぱっと見で動作を
誤解しそうな点。[VB.NET]で
Return 戻り値
の形に慣れてしまった点…などから使いません。
(再帰処理の場合のみ使うことにしてます。)
ツイート | ![]() |