Diferencia entre revisiones de «Operadores estándares»

De Wiki~eWa
Ir a la navegaciónIr a la búsqueda
m
Línea 12: Línea 12:
 
* "'''a'''": un [[objeto]] del [[tipo]] "A".
 
* "'''a'''": un [[objeto]] del [[tipo]] "A".
 
* "'''b'''": un [[objeto]] del [[tipo]] "B". El [[tipo]] "B" puede ser el propio [[tipo]] "A".
 
* "'''b'''": un [[objeto]] del [[tipo]] "B". El [[tipo]] "B" puede ser el propio [[tipo]] "A".
* '''Acción''': asigna, ''campo a campo'', el valor del [[objeto]] "b" al [[objeto]] "a". Si una [[propiedad]] de "b" no existe en "a", no se asigna. Si una [[propiedad]] de "a" no existía en "b", se deja como está, es decir, con el valor anterior o el valor por defecto del [[tipo]] "A".
+
* '''Acción''': asigna, ''campo a campo'', el valor del [[objeto]] "b" al [[objeto]] "a".
** Si "a" es el mismo [[objeto]] que "b" (porque sea el mismo o porque sea un ''alias''), se establece en el [[estándar]] que "a" pasará a ser un [[objeto]] '''clonado''' de "b" e '''independiente'''. En el caso de que "b" sea el propio "a", se generará [[Recolector de basura|basura inorgánica]].
+
** Si una [[propiedad]] de "b" no existe en "a", no se asigna. Si una [[propiedad]] de "a" no existía en "b", se deja como está, es decir, con el valor anterior o el valor por defecto del [[tipo]] "A".
 +
** Si se detecta que el [[objeto]] "a" es el mismo [[objeto]] que el [[objeto]] "b" (porque sea el mismo o porque sea un ''alias''), el [[estándar]] especifica que se debe ignorar la instrucción en tiempo de [[compilación]].
 
* '''Devuelve''': devuelve el propio [[objeto]] "a" ya modificado.
 
* '''Devuelve''': devuelve el propio [[objeto]] "a" ya modificado.
  
Línea 23: Línea 24:
 
* '''Devuelve''': devuelve el propio [[objeto]] "a2", que también es "a1".
 
* '''Devuelve''': devuelve el propio [[objeto]] "a2", que también es "a1".
 
Esta [[operación]] se puede considerar equivalente a que "a2" '''pase a ser un alias''' de "a1".
 
Esta [[operación]] se puede considerar equivalente a que "a2" '''pase a ser un alias''' de "a1".
 +
 +
=== '''Clonación de''' ("a2:A =< a1:A") ===
 +
''a2 '''clonación de''' a1''
 +
* "'''a2'''": un [[objeto]] del [[tipo]] "A".
 +
* "'''a1'''": un [[objeto]] del [[tipo]] "A".
 +
* '''Acción''': hace que el [[objeto]] "a2" sea una copia (''clon'') independiente del [[objeto]] "a1".
 +
** Hay que destacar que el [[objeto]] "a1" no se destruye; por lo tanto, si los dos [[objeto]]s fueran el mismo (''x =< x'') y no tuvieran ningún ''alias'', se perdería la referencia generando [[Recolector de basura|basura inorgánica]].
 +
* '''Devuelve''': devuelve el propio [[objeto]] "a2".
  
 
== Operadores aritméticos ==
 
== Operadores aritméticos ==

Revisión del 19:19 8 mar 2012

Operadores matemáticos

Dentro del Paradigma eWa, se define un conjunto de operadores estándares que son utilizados de igual manera para cualquiera de los Lenguajes de Programación eWa. Algunos de ellos son los mismos que se utilizan en otros lenguajes de programación (incluso tradicionales), pero existen numerosos operadores propios y algunos que, con la misma sintaxis, producen diferentes resultados.

Generalmente se dividen en grupos dependiendo de su cometido. A su vez, cada grupo se subdivide generalmente en dos, diferenciando los operadores atómicos y los operadores vectoriales que se aplican, respectivamente, a objetos atómicos u conjuntos.

Al crear una clase, se pueden sobrescribir los procedimientos heredados de los operadores estándares.

Operadores de asignación

Igual a ("a:A = b:B")

a igual a b

  • "a": un objeto del tipo "A".
  • "b": un objeto del tipo "B". El tipo "B" puede ser el propio tipo "A".
  • Acción: asigna, campo a campo, el valor del objeto "b" al objeto "a".
    • Si una propiedad de "b" no existe en "a", no se asigna. Si una propiedad de "a" no existía en "b", se deja como está, es decir, con el valor anterior o el valor por defecto del tipo "A".
    • Si se detecta que el objeto "a" es el mismo objeto que el objeto "b" (porque sea el mismo o porque sea un alias), el estándar especifica que se debe ignorar la instrucción en tiempo de compilación.
  • Devuelve: devuelve el propio objeto "a" ya modificado.

Idéntico a ("a2:A <=> a1:A")

a2 idéntico a a1

Esta operación se puede considerar equivalente a que "a2" pase a ser un alias de "a1".

Clonación de ("a2:A =< a1:A")

a2 clonación de a1

  • "a2": un objeto del tipo "A".
  • "a1": un objeto del tipo "A".
  • Acción: hace que el objeto "a2" sea una copia (clon) independiente del objeto "a1".
    • Hay que destacar que el objeto "a1" no se destruye; por lo tanto, si los dos objetos fueran el mismo (x =< x) y no tuvieran ningún alias, se perdería la referencia generando basura inorgánica.
  • Devuelve: devuelve el propio objeto "a2".

Operadores aritméticos

Operadores de comparación