AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Sintaxis WLanguage / Declaración de variables
  • Presentación
  • Inferencia de tipo: asignación de copy
  • Sintaxis
  • Modo de funcionamiento
  • Los tipos sencillos apoyados por la asignación de copy
  • Inferencia de tipo: asignación de reference
  • Sintaxis
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentación
La inferencia de tipo se utiliza para simplificar la declaración de Variable cuando el tipo Variable puede ser deducido automáticamente por el compilador. El principio es muy sencillo. El tipo Variable se deduce según el valor que se le asigna al Variable.
El valor se puede asignar:
Inferencia de tipo: asignación de copy

Sintaxis

1. Inferencia simple:
let <Variable> = <Value>
donde:
  • <Variable> corresponde al nombre de Variable para declarar.
  • <Valor> corresponde al valor asignado a la Variable a declarar.
2. Inferencia múltiple:
let (<Variable 1>, ..., <Variable N>) = (<Value 1>, ..., <Value N>)
donde:
  • <Variable 1> ... <Variable N> corresponden a los nombres de Variable s para declarar.
  • Valor 1> <Valor 1> ... <Valor N> corresponden a los valores asignados a cada Variable a declarar.

Modo de funcionamiento

Durante la asignación por copia, si el tipo de Variable puede ser definido durante la compilación, el Variable es declarado según el tipo de valor. Se asigna una copia de valor a la Variable.
Ejemplos:
let Amount = 1500.69 // real type

let City = "Montpellier" // string type
// Multiple inference
let (x, y) = (1, "A")

// Multiple inference via a procedure returning multiple values
let (x, y) = MyProcedureWithMultipleReturns()
Observación: La Variable mantiene su tipo; su tipo no cambia durante la ejecución aunque se le asigne otro valor de un tipo diferente.
Si no se puede definir el tipo de la variable durante la compilación, el tipo se definirá durante la ejecución, de forma dinámica (como cuando un parámetro de Procedure no tiene tipo).
Por ejemplo:
// Case of unknown type during the compilation
PROCEDURE MyProc(Param1)
 
let MyVar = Param1
 
// As the Param1 parameter has no specific type,
// its type is unknown during the compilation
// The type of the Param1 variable will be based on the value passed as parameter
// during the call to the procedure.
// The MyVar variable will also have the same type
// as the type of the Param1 variable known during the execution.

Los tipos sencillos apoyados por la asignación de copy

Los tipos simples que apoya la asignación de copy son los siguientes:
Tipo de valorTipo utilizado
karaokekaraoke
unsigned integer on 1 byteint
unsigned integer en 2 bytesint
unsigned integer on 4 bytesunsigned integer on 4 bytes
unsigned integer on 8 bytesunsigned integer on 8 bytes
Entero de 1 byteint
2-byte integerint
intint
Entero de 8 bytesEntero de 8 bytes
divisadivisa
decimaldecimal
4 bytes reales4 bytes reales
realreal
caráctercarácter
cadenastring (Ansi o Unicode)
cadena en Nstring (Ansi o Unicode)
Cadena ansiCadena ansi
Cuerda ansi en NCadena ansi
Cadena UnicodeCadena Unicode
Cadena Unicode en NCadena Unicode
Cadena ASCIIZ en NCadena ansi
Cadena fija en NCadena ansi
Cadena de Pascal en NCadena ansi
bufferbuffer
fechafecha
momentomomento
datetimedatetime
lapsolapso
tipo de letratipo de letra
procedimientoprocedimiento
Inferencia de tipo: asignación de reference

Sintaxis

1. Inferencia simple:
let <Variable> <- <Value>
donde:
  • <Variable> corresponde al nombre de Variable para declarar.
  • <Valor> corresponde al valor asignado a la Variable a declarar.
2. Inferencia múltiple:
let (<Variable 1>, ..., <Variable N>) <- (<Value 1>, ..., <Value N>)
donde:
  • <Variable 1> ... <Variable N> corresponden a los nombres de Variable s para declarar.
  • Valor 1> <Valor 1> ... <Valor N> corresponden a los valores asignados a cada Variable a declarar.
La asignación de reference está disponible sólo para los tipos complejos:
  • Tipo de objeto: Clase, Estructura, Clase.NET, tipo avanzado, ....
  • Tipo de contenedor: Array, Asociativo array, Pila, Cola, Lista, ...
Al asignar por reference, el valor del reference Variable no se copia al nuevo Variable sino que el nuevo Variable apunta al reference Variable.
En este caso, si se modifica el reference Variable, también se modifica el nuevo Variable.
Ejemplo:
clMyClient is cClient // cClient class, clMyClient object
let clClient <- clMyClient // class type, clClient points to clMyClient object

arrPrice is array of 5 currencies
arrPrice[1] = 500.00
arrPrice[2] = 250

let tPrice <- arrPrice // array type, tPrice points to the arrPrice array
Versión mínima requerida
  • Versión 18
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local