Return
将控制从当前执行点返回给调用者。Return关键字有两种不同的用法,通过形式和上下文区分:
- 裸
Return——仅作为GoSub的配套使用。在GoSub子例程中,Return分支回到最近执行的GoSub之后紧接着的语句。 Returnexpression——仅在Function或Property Get过程内部有效(twinBASIC扩展)。它以expression作为返回值退出过程。
要在不返回值的情况下退出Sub、Function、Property Get、Property Let或Property Set过程,请使用Exit Sub、Exit Function或Exit Property——没有裸Return的过程退出形式。
语法:
Return
Return expression
- expression
- 在Function或Property Get过程中,返回给调用者的值。expression的类型必须与过程声明的返回类型兼容。此形式中expression必须存在——不能省略。
INFO
Return expression形式是twinBASIC扩展。经典VBA将Return专门保留给GoSub...Return构造,设置函数返回值的唯一方式是赋值给函数名(例如MyFunc = expr)。twinBASIC支持两种风格。
示例
使用Return expression从Function返回值:
vb
Function Square(N As Double) As Double
Return N * N
End Function
Debug.Print Square(7) ' 49提前退出Sub——注意使用Exit Sub,而非裸Return:
vb
Sub LogIfEnabled(ByVal Message As String)
If Not LoggingEnabled Then Exit Sub
Debug.Print Now & ": " & Message
End Sub从GoSub子例程返回——此处的裸Return在GoSub之后的语句处恢复执行。完整模式见GoSub...Return。
vb
Sub GosubDemo()
Dim Num As Double
Num = 10
GoSub Halve
Debug.Print Num ' 5
Exit Sub
Halve:
Num = Num / 2
Return ' Return to the GoSub call site.
End Sub