函数

前言

函数允许将一个程序分成几个部分。这样可以避免出现过大的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 关键字。