Artigo
· Out. 14 2min de leitura

Funções do lado esquerdo em ObjectScript

Em ObjectScript, você tem uma ampla coleção de funções que retornam algum valor tipicamente:

set variable = $somefunction(param1,param2, ...)

Não há nada de especial nisso.
Mas há um conjunto de funções que classifico como Funções de Lado Esquerdo
A especialidade delas é que você também pode usá-las à esquerda do operador igual como um alvo no comando SET:

set $somefunction(param1,param2, ...) = value

O motivo para levantar esse assunto é que com o IRIS 2024.1 há depois de muitos anos um "novo garoto nessa vizinhança"

$VECTOR()

Atribui, retorna e exclui dados vetoriais em posições especificadas, especialmente
set $VECTOR(MyVector , position , type) = value

Eu não quero entrar em detalhes. A documentação é realmente completa.
Há também outras 3 novas funções lado direito relacionadas a vetores: $VECTORDEFINED (),  $VECTOROP(), $ISVECTOR()  

Se você seguir os exemplos na documentação, verá que a nova função relacionada SQL TO_VECTOR ()
faz praticamente o mesmo em notação SQL (na verdade, não é visível na InterSystems SQL Reference)

Como lembrete/visão geral, uma lista das funções tradicionais do lado esquerdo:

  • $BIT – Retorna ou define o valor bit de uma posição específica numa bitstring.
  • $EXTRACT – Extrai uma substring de uma string de caractere por posição, ou substitui uma substring por posição.
  • $LIST – Retorna ou substitui elementos em uma lista.
  • $PIECE – Retorna ou substitui uma substring, usando um delimitador.
  • $WEXTRACT – Extrai uma substring de uma string de caractere por posição, ou substitui uma substring por posição, reconhecendo pares de substituição.

É uma lista curta, mas pode ser altamente eficiente em alguns casos para evitar conteúdo duplicado e manipulações confusas.

Discussão (0)1
Entre ou crie uma conta para continuar