FreeBASIC マニュアルのトップに戻る

FreeBASIC ProPgReturnValue

目次→教本→プログラマーのための案内Returning Values←オリジナル・サイト

戻り値 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る


戻り値

値を式で使用したり、変数に代入したりできるように、関数の終了時に値を持つ Function 手続きの機能を指します。

関数の値は、3つの方法で、返すことができます:
- Return キーワードの後に値が続くと、すぐに関数を終了し、その値を呼び出し元に返します。
- 関数は、目的の戻り値に Function キーワードか function_identifier を代入して値を返すこともできます (ただし、Function キーワードまたは function_identifier では、現在代入されている値を評価することはできません)。 後者の 2 つの方法では、関数は終了しません。

'' 関数の名前を使って、戻り値を設定して、関数を実行し続けます。:
Function myfunc1() As Integer
   myfunc1 = 1
End Function

'' 予約語 'Function' を使って、戻り値を設定して、関数を実行し続けます。:
Function myfunc2() As Integer
   Function = 2
End Function

'' 予約語 'Return' を使って、戻り値を設定します。この場合は、直ぐに、関数から出ます。:
Function myfunc3() As Integer
   Return 3
End Function
Sleep



'' このプログラムは、値を返す関数を示します。

Declare Function myFunction () As Integer

Dim a As Integer

'ここで、myFunction が返すものを受け取って、それに 10 を加えます。
a = myFunction() + 10

'myFunction が 10 を返すのを知っています。10+10=20 を得て、20 を表示します。
Print a

Function myFunction () As Integer
  'ここで、10 を返すように myFunction に伝えます。
  Function = 10
End Function
Sleep


コンストラクターを使用してオブジェクトを返す場合、同じ関数内で Function= キーワード 、function_identifier=Exit Function キーワードと混合された Return キーワードはサポートされていません。


参照を返す
関数の結果は、値によってではなく、参照によって返すことができます。
プログラムの動作は、全く異なります。

Byref 関数結果を、Function = variableReturn variable 命令文を通して割り当てるとき、関数は、変数の値のコピーを返しません。その代わりに、その変数への参照を返します。
その関数の呼び手は、関数から返される参照を通して、変数を修正することができます。手でポインターを使う必要はありません。
これは、 Byref パラメータに、とてもよく似ています。

更に詳しくは、Byref (関数の結果) を参照下さい。

手動で Byref 関数から出なりのポインターを返す
Function = variableReturn variable 命令文で、結果変数の前に Byval キーワードを指定することによって、アドレス(通常ポインターに保存される)は、ありのままの状態で直接渡されることができます。そして、Byref 関数結果に、アドレスが指した同じメモリ場所に参照をつけることを強います。
たとえば:

Dim Shared i As Integer = 123

Function f( ) ByRef As Integer
    Dim pi As Integer Ptr = @i

    Function = ByVal pi

    '' or, with RETURN it would look like this:
    Return ByVal pi
End Function

Print i, f( )
Sleep



参照:
プログラマーのための案内に戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2022-05-29 04:05:13
日本語翻訳:WATANABE Makoto、原文著作者:JasonFirth

ホームページのトップに戻る

表示-非営利-継承