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.
  • Presentación
  • Tipo inferencia: asignación de copy
  • sintáctico
  • Modo de funcionamiento
  • Los tipos sencillos apoyados por la asignación de copy
  • Tipo inferencia: asignación de reference
  • 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
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 sencillo. El tipo Variable se deduce según el valor que se le asigna al 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 de copy.
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 de copy.
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 de copy.
Tipo inferencia: asignación de copy

sintáctico

1. Simple inferencia:
let <Variable> = <Value>
donde:
  • <Variable> corresponde al nombre de Variable para declarar.
  • <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>)
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.
Nueva funcionalidad versión 19
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.
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
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()
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
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 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
stringstring (Ansi o Unicode)
cadena en Nstring (Ansi o Unicode)
Cuerda de AnsiCuerda de Ansi
Cuerda ansi en NCuerda de Ansi
Cadena unicodeCadena unicode
Cadena Unicode en NCadena unicode
Cadena ASCIIZ en NCuerda de Ansi
Cadena fija en NCuerda de Ansi
Cadena de Pascal en NCuerda de Ansi
bufferbuffer
datedate
momentomomento
datetimedatetime
lapsolapso
tipo de letratipo de letra
procedimientoprocedimiento
Tipo inferencia: asignación de reference

sintáctico

1. Simple inferencia:
let <Variable> <- <Value>
donde:
  • <Variable> corresponde al nombre de Variable para declarar.
  • <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>)
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.
Nueva funcionalidad versión 19
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.
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, Array asociativo, Stack, Tail, List, ...
Durante una asignación de reference, el valor de reference Variable no se copia en el 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