関数について

解決


1  2006-01-05 21:23:15  No: 129366

VisualBasic6.0です。

戻り値がある関数を作る場合の書き方(以下のコード)です。

例)
Private Function CheckData() As Boolean

    ' ①
    CheckData = True

    ' ②
    If CheckData Then
        CheckData = True
    Else
        CheckData = False
    End If

End Function

②のところで関数名をそのまま判断に使用していますが、
こういう書き方はまずくないでしょうか?
(再帰処理にはなりませんが・・・)


魔界の仮面弁士  2006-01-05 22:40:43  No: 129367

コーディングスタイルとしての善し悪しは別として、
言語仕様的には、そのような書き方でも、特に問題ありません。
その場合の関数名は、ローカル変数のように扱われます。

ただし、今回のような『If CheckData Then』ならば構いませんが、
『If CheckData() Then』と書くと再帰される点には注意してください。


1  2006-01-06 00:28:43  No: 129368

特に問題はなかったんですね。
ありがとうございました。

>『If CheckData() Then』と書くと再帰される点には注意してください。
はい。そう記述すると再帰処理されたのでどうかと思ってました。


1  2006-01-06 00:30:36  No: 129369

>コーディングスタイルとしての善し悪しは別として、
プログラムの例がわるいですが、こういった書き方はよくないでしょうか?


特攻隊長まるるう  2006-01-06 00:55:56  No: 129370

>こういった書き方はよくないでしょうか?
自分(の会社のコーディング規約など)で決めればいい事だと思います。

ボクの場合は、ちょっとした書き間違いで無限ループになる
可能性がある点。関数名が変更になったときに内部の複数の
場所で関数名を置換する必要がある点。ぱっと見で動作を
誤解しそうな点。[VB.NET]で
   Return 戻り値
の形に慣れてしまった点…などから使いません。
(再帰処理の場合のみ使うことにしてます。)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加