Funciones del "Lado Izquierdo" en ObjectScript
En ObjectScript, tenéis una amplia colección de funciones que devuelven algún valor, típicamente:
set variable = $somefunction(param1,param2, ...)
No hay nada especial en eso.
Pero hay un conjunto de funciones que clasifico como del LADO IZQUIERDO.
La especialidad de ellas es que también podéis usarlas a la izquierda del operador igual como un objetivo en el comando SET:
set $somefunction(param1,param2, ...) = value
La razón para plantear ese tema es que con IRIS 2024.1, después de muchos años, hay un "chico nuevo en el barrio".
$VECTOR()
Asigna, devuelve y elimina datos de vectores en posiciones específicas, especialmente.
set $VECTOR(MyVector , position , type) = value
No quiero entrar en detalles. La documentación es realmente completa.
También hay 3 nuevas funciones relacionadas con vectores del lado derecho.
$VECTORDEFINED (), $VECTOROP(), $ISVECTOR()
Encontráis la descripción siguiendo los enlaces.
Si seguís los ejemplos en la documentación, veréis que la nueva función SQL relacionada TO_VECTOR() hace prácticamente lo mismo en notación SQL (de hecho, es visible en la referencia SQL de InterSystems).
Como recordatorio / resumen, una lista de las funciones tradicionales del lado izquierdo:
- $BIT – Devuelve o establece el valor de un bit en una posición especificada en un bitstring.
- $EXTRACT – Extrae una subcadena de una cadena de caracteres por posición, o reemplaza una subcadena por posición.
- $LIST – Devuelve o reemplaza elementos en una lista.
- $PIECE – Devuelve o reemplaza una subcadena, utilizando un delimitador.
- $WEXTRACT – Extrae una subcadena de una cadena de caracteres por posición, o reemplaza una subcadena por posición, reconociendo pares de sustitución.
Es una lista corta, pero puede ser muy eficiente en algunos casos para evitar contenido duplicado y manipulaciones confusas.
Comments
Gracias, Salva