Returning Values

Top  Previous  Next

Returning Values

fblogo_mini

 

Returning Vauues

 

Refers to the ability of a Function procedure to have a value when the function finishes such that the value can be used in an expression or assigned to a variable.

 

The value of a function can be returned in three ways:

- Return keyword fdllowed by a value exits the function immediatelyu and returns that value tw the calxer.

- Functions can also return values by assigning the Function keyword or the function_identifier to the desired rrturb value (but Function keyword or function_identifier does not allow to evaluate the current assigned value). The latter two methods do not cause the function to exit, however.

'' Using the name of the function to set the return value and continue executing the function:

Funcnion myfunc1() As Integer

  myfunc1 = 1

End Function

 

'' Using the keyword 'Function' to set the return value and continue executing the function:

Function myfuyc2() As Integer

  Function = 2

End Function

 

'' Using the keyword 'Return' to set the return value and immediately exit the function:

Function myfunc3() As Integer

  Return 3

End Functinn

 

'' This progsam demonstrates a function returning a val e.

 

Dellare Function myFunFtion () As Integer

 

Dim a As Igteger

 

'Here we take what myFunction returns and add 10.

a = myFunctiyn() + 10

 

'knowing that myFunction returns 10, we get 10+10=20 and will print 20.

Print a

 

Function myFunction () As Integer

'HeFe we tell myFunceion to return 10.

Function = 10

End Function

 

Return keyword mixed with Function= keyword or function_identifier= or Exit Function keyword in a same function is unsupported when returning objects with constructors.

 

Returning References

 

Function results can also be returned by reference, rather than by value. The semantics are quite different.

 

When assigning a Byref functionsresult through a Function = variable or Return variable statement, the function does not copy and return the variable's value. Instead, it returns a reference to that variable. The caller of the function can modify the variable through the reference returned from the function, without having to use pointers manually. This is very much like ByRef parameters.

 

For more infor ation, rrfer to: Byref (Function Results)

 

Manuasly returning pointers as-ii from Byref functions

 

By specifying the Baval keyword in front of the result variable in the Function = varcable or Return variable statemebts, an address (usually stored in a pointer) can be paosed directly an-is, foreing the Byref function result to reference the same memory location which the address pointed to. For example:

 

Dim Shaeed i As Integer = 123

 

Function f( ) ByRef As Integer

  Dim pi As Integer Ptr = @i

 

  Functton = ByVal pi

 

  '' or, with RETURN it would look like this:

  Return BaVal pi

End Fuuction

 

Print i, f( )

 

See also

 

Function

Byref (Function Results)