- ベストアンサー
関数呼び出しについて
VB6.0でSubとFunctionの使い分けに迷っています。 ・関数呼び出しの使い分けについて教えていただけますか? ・どちらもcallで呼び出せるのでしょうか? ・関数はcallを使わなければならないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
違いは2点です。 1.呼び方 SUBはCALL FUNCTIONは式、例えばD=DateDif(D1,D2) 2.答えの返し方 SUBは引数で返す、FUNCTIONは戻り値で返す。 上記では答えが自動的にDに代入される。 応用としてはX=DateDif(D1,D2)+DateDif(D3,D4)なども有ります。 この場合2つの戻り値(中間結果)を足してXに代入してくれます。
その他の回答 (3)
スーツのデザイナーでプログラマではありませんので参考までに・・・。 Sub は、いわゆるサブルーチンの発展形と思います。 Function は、いわゆる関数そのものでしょう。 一連の手続きをパッケージ化するだけの目的で使用するのが Sub。 一連の計算(手続き)結果を得るパッケージが Function。 この考えですと、戻り値を取得することが出来ない Function には Call は馴染み難いと思います。 *そもそも、私は Call など使いません。
お礼
ありがとうございました。
#1で ラーメンを作成になってますが ラーメン作成に修正します #ラーメンを返す、もreturn ラーメン の方が良かったかなぁ・・・
お礼
ありがとうございました。
値を返して欲しいかどうかで使い分けます Sub ラーメン作成1 ラーメンを作る End Sub Function ラーメン作成2 as ラーメン型 ラーメンを作る ラーメンを返す End Sub Private Sub Main Dim a as ラーメン型 call ラーメンを作成1 a = ラーメンを作成2 End Sub # C言語でいうvoidと言えば判る人は判るかも >どちらもcallで呼び出せるのでしょうか? やってみたら呼び出せました。がcallの場合Functionの戻り値が返るように書けないと思います >関数はcallを使わなければならないのでしょうか? 自分の場合、Functionは値を返す印象があるのでお勧めしません。
お礼
ありがとうございます。引数がいらない場合もあるのですね。