PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Panorama general
  • Tipo inferencia: cesión por copia
  • sintáctico
  • Modo de funcionamiento
  • Los tipos simples soportados por la asignación por copia
  • Tipo inferencia: asignación por referencia
  • sintáctico
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Panorama general
La inferencia de tipo se utiliza para simplificar la declaración de variables cuando el compilador puede deducir automáticamente el tipo de variable.. El principio es sencillo. El tipo de variable se deduce según el valor asignado a la variable.
El valor se puede asignar:
Versiones 20 y posteriores
WEBDEV - Código Navegador Esta función está disponible en el código del navegador.
WEBDEV - Código Navegador Sólo está disponible la inferencia de tipo por copia..
Nueva funcionalidad versión 20
WEBDEV - Código Navegador Esta función está disponible en el código del navegador.
WEBDEV - Código Navegador Sólo está disponible la inferencia de tipo por copia..
WEBDEV - Código Navegador Esta función está disponible en el código del navegador.
WEBDEV - Código Navegador Sólo está disponible la inferencia de tipo por copia..
Tipo inferencia: cesión por copia

sintáctico

1. Simple inferencia:
let <Variable> = <Value>
dónde:
  • <Variable> corresponde al nombre de la variable a declarar.
  • <El valor> corresponde al valor asignado a la variable a declarar.
Versiones 19 y posteriores
2. Inferencia múltiple:
let (<Variable 1>, ..., <Variable N>) = (<Value 1>, ..., <Value N>)
dónde:
  • <Variable 1> ... <La variable N> corresponde a los nombres de las variables a declarar.
  • Valor 1> <Valor 1> ... <El valor N> corresponde a los valores asignados a cada variable a declarar.
Nueva funcionalidad versión 19
2. Inferencia múltiple:
let (<Variable 1>, ..., <Variable N>) = (<Value 1>, ..., <Value N>)
dónde:
  • <Variable 1> ... <La variable N> corresponde a los nombres de las variables a declarar.
  • Valor 1> <Valor 1> ... <El valor N> corresponde a los valores asignados a cada variable a declarar.
2. Inferencia múltiple:
let (<Variable 1>, ..., <Variable N>) = (<Value 1>, ..., <Value N>)
dónde:
  • <Variable 1> ... <La variable N> corresponde a los nombres de las variables a declarar.
  • Valor 1> <Valor 1> ... <El valor N> corresponde a los valores asignados a cada variable a declarar.

Modo de funcionamiento

Durante la asignación por copia, si el tipo de variable puede definirse durante la compilación, la variable se declara según el tipo de valor. Se asigna una copia del valor a la variable.
Ejemplos:
let Amount = 1500.69 // real type

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

// Multiple inference via a procedure returning multiple values
let (x, y) = MyProcedureWithMultipleReturns()
Nueva funcionalidad versión 19
// Multiple inference
let (x, y) = (1, "A")

// Multiple inference via a procedure returning multiple values
let (x, y) = MyProcedureWithMultipleReturns()
// Multiple inference
let (x, y) = (1, "A")

// Multiple inference via a procedure returning multiple values
let (x, y) = MyProcedureWithMultipleReturns()
señalar: La variable mantiene su tipo ; su tipo no cambia durante la ejecución aunque se le asigne otro valor de tipo diferente.
Si el tipo de variable no se puede definir durante la compilación, el tipo se definirá durante la ejecución, dinámicamente (como cuando un parámetro de procedimiento no tiene tipo).
Por ejemplo:
// Case of unknown type during the compilation
PROCÉDURE MyProc(Param1)

let MyVar = Param1

// As the Param1 parameter has no specific type,
// its type is unknown during the compilation
// The Param1 variable will have the same type as the value passed in 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 simples soportados por la asignación por copia

Los tipos simples soportados por la asignación por copia 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
entero en 2 bytesint
intint
Entero de 8 bytesEntero de 8 bytes
divisadivisa
decimaldecimal
4 bytes reales4 bytes reales
de verdadde verdad
caráctercarácter
stringstring (Ansi o Unicode)
cadena en Nstring (Ansi o Unicode)
Ansi stringAnsi string
Cuerda ansi en NAnsi string
Cadena unicodeCadena unicode
Cadena Unicode en NCadena unicode
Cadena ASCIIZ en NAnsi string
Cadena fija en NAnsi string
Cadena de Pascal en NAnsi string
amortiguadoramortiguador
salir consalir con
momentomomento
datetimedatetime
durationduration
tipo de letratipo de letra
procedureprocedure
Tipo inferencia: asignación por referencia

sintáctico

1. Simple inferencia:
let <Variable> <- <Value>
dónde:
  • <Variable> corresponde al nombre de la variable a declarar.
  • <El valor> corresponde al valor asignado a la variable a declarar.
Versiones 19 y posteriores
2. Inferencia múltiple:
let (<Variable 1>, ..., <Variable N>) <- (<Value 1>, ..., <Value N>)
dónde:
  • <Variable 1> ... <La variable N> corresponde a los nombres de las variables a declarar.
  • Valor 1> <Valor 1> ... <El valor N> corresponde a los valores asignados a cada variable a declarar.
Nueva funcionalidad versión 19
2. Inferencia múltiple:
let (<Variable 1>, ..., <Variable N>) <- (<Value 1>, ..., <Value N>)
dónde:
  • <Variable 1> ... <La variable N> corresponde a los nombres de las variables a declarar.
  • Valor 1> <Valor 1> ... <El valor N> corresponde a los valores asignados a cada variable a declarar.
2. Inferencia múltiple:
let (<Variable 1>, ..., <Variable N>) <- (<Value 1>, ..., <Value N>)
dónde:
  • <Variable 1> ... <La variable N> corresponde a los nombres de las variables a declarar.
  • Valor 1> <Valor 1> ... <El valor N> corresponde a los valores asignados a cada variable a declarar.
La asignación por referencia sólo está disponible para los tipos complejos:
  • Tipo de objeto: Clase, Estructura, Clase.NET, tipo avanzado, ....
  • Tipo de contenedor: Array, ,Array asociativo, Pila, Cola, Lista, ....
Durante una asignación por referencia, el valor de la consigna no se copia en la nueva variable, sino que la nueva variable apunta a la consigna..
En este caso, si se modifica la consigna, también se modifica la nueva 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