函数
前言
函数允许将一个程序分成几个部分。这样可以避免出现过大的Main()过程。
在Gambas中,有两类“函数”:
过程
首先你已经看到了一个过程。它的名称是
Main() :-) 。这个过程有一点特殊,因为它是Gambas解释器开始读取的第一个过程。这是如何定义一个过程:
Sub procedureName(arguments)
End
可以通过arguments向过程传递参数。如果不需要传递任何参数,那么可以让括号里面为空。这是一个演示如何在程序中使用过程的示例:
Sub sayHello()
Print "Hello !"
End
Public Sub Main()
sayHello()
End
结果是:
Hello !
这是另一个带参数的示例:
Sub infoUser (firstname As String, age As Integer)
PRINT "Firstname : " & firstname
PRINT "Age : " & age
End
Public Sub Main()
Dim firstname As String
Dim age As Integer
Print "What is your name ? "
Input firstname
Print "How old are you ?"
Input age
infoUser(firstname, age)
End
结果是:
What is your name ?
François
How old are you ?
21
Firstname : François
Age : 21
变量可以和参数的变量同名。就像你看到的那样,Gambas对此没有问题 :-)。但是重要的是_它们不是同一个变量_!
函数
函数的行为类似于过程,除了它们会返回一个值。它们的用法和定义与过程相同。仅仅需要指定将要返回的值的类型。例如,要求用户输入一个数并显示这个数的平方:
Public Sub Main()
Dim nombre As Integer
Print "Please type a number : "
Input nombre
Print "The square of " & nombre & " is " & carre(nombre)
End
Function carre (nombre As Integer) As Integer
Return nombre * nombre 'indicate the value that the function returns.
End
为了获得函数的返回值,必须声明一个变量来存储结果。
可访问性
Main() 过程前面有
PUBLIC 关键字。对于这个过程来说,这是它的识别标志。但对于您自己定义的过程,此关键字允许您定义过程的可访问性。即,如果您有多个 Gambas 模块,这允许您从其他模块调用这些过程。
但是,如果您希望过程和函数仅在同一模块中调用,则必须在过程和函数前面指定
PRIVATE 关键字。