|
|
|
|
- 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
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: 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 valor | Tipo utilizado |
---|
karaoke | karaoke | unsigned integer on 1 byte | int | unsigned integer en 2 bytes | int | unsigned integer on 4 bytes | unsigned integer on 4 bytes | unsigned integer on 8 bytes | unsigned integer on 8 bytes | Entero de 1 byte | int | 2-byte integer | int | int | int | Entero de 8 bytes | Entero de 8 bytes | divisa | divisa | decimal | decimal | 4 bytes reales | 4 bytes reales | real | real | carácter | carácter | cadena | string (Ansi o Unicode) | cadena en N | string (Ansi o Unicode) | Cadena ansi | Cadena ansi | Cuerda ansi en N | Cadena ansi | Cadena Unicode | Cadena Unicode | Cadena Unicode en N | Cadena Unicode | Cadena ASCIIZ en N | Cadena ansi | Cadena fija en N | Cadena ansi | Cadena de Pascal en N | Cadena ansi | buffer | buffer | fecha | fecha | momento | momento | datetime | datetime | lapso | lapso | tipo de letra | tipo de letra | procedimiento | procedimiento |
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
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|