Declaración de subrutinas

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Guía y referencia del usuario > Generador de código > SPL: el lenguaje de programación Spy > Subrutinas >

Declaración de subrutinas

Subrutinas

 

Ejemplo de sintaxis:

 

 Sub SimpleSub()

 

 ... lines of code

 

 EndSub

 

Sub es la palabra clave que denota el procedimiento.
SimpleSub es el nombre asignado a la subrutina.
Los paréntesis pueden contener una lista de parámetros.
El bloque de código de una subrutina empieza inmediatamente después del paréntesis de cierre.
EndSub denota el final del bloque de código.

 

Nota: no se permiten declaraciones de subrutinas recursivas o en cascada (es decir, una subrutina no puede contener otra subrutina).

 

Parámetros

Los parámetros también se pueden pasar con procedimientos usando esta sintaxis:

 

Todos los parámetros deben ser variables.
Las variables deben tener el prefijo $.
Las variables locales se definen en una subrutina.
Las variables globales se declaran de forma explícita, fuera de las subrutinas.
Si hay varios parámetros, se separan con comas dentro de los paréntesis.
Los parámetros pueden pasar valores.

 

Parámetros: pasar valores

Los parámetros se pueden pasar de dos maneras: por valor y por referencia, usando las palabras clave ByVal y ByRef respectivamente.

 

Sintaxis:

' definir sub CompleteSub()

[Sub CompleteSub( $param, ByVal $paramByValue, ByRef $paramByRef )

] ...

 

 

ByVal especifica que el parámetro se pasa por valor. Recuerde que la mayoría del os objetos solamente se pueden pasar por referencia.
ByRef especifica que el parámetro se pasa por referencia. Se trata del método predeterminado si no se especifica ByVal ni ByRef.

 

Valores devueltos de funciones

Para devolver un valor desde una subrutina use la instrucción return. Este tipo de función se puede llamar desde dentro de una expresión.

 

Ejemplo:

' definir una función

[Sub MakeQualifiedName( ByVal $namespacePrefix, ByVal $localName )

if $namespacePrefix = ""

return $localName

else

return $namespacePrefix & ":" & $localName

endif

EndSub

]


© 2019 Altova GmbH