strings.coalesce

Compatível com:
strings.coalesce(a, b, c, ...)

Descrição

Esta função aceita um número ilimitado de argumentos e devolve o valor da primeira expressão que não é avaliada como uma string vazia (por exemplo, "valor diferente de zero"). Se todos os argumentos forem avaliados como uma string vazia, a chamada de função devolve uma string vazia.

Os argumentos podem ser literais, campos de eventos ou chamadas de funções. Todos os argumentos têm de ser do tipo STRING. Se algum argumento for um campo de evento, os atributos têm de ser do mesmo evento.

Tipos de dados de parâmetros

STRING

Tipo devolvido

STRING

Exemplos de código

Exemplo 1

O exemplo seguinte inclui variáveis de string como argumentos. A condição é avaliada como verdadeira quando (1) $e.network.email.from é suspicious@gmail.com ou (2) $e.network.email.from está vazio e $e.network.email.to é suspicious@gmail.com.

"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
Exemplo 2

O exemplo seguinte chama a função coalesce com mais de dois argumentos. Esta condição compara o primeiro endereço IP não nulo do evento $e com os valores na lista de referência ip_watchlist. A ordem em que os argumentos são unidos nesta chamada é a mesma ordem em que são enumerados na condição da regra:

  1. $e.principal.ip é avaliado primeiro.
  2. Em seguida, é avaliado o elemento $e.src.ip.
  3. Em seguida, é avaliado o elemento $e.target.ip.
  4. Por último, a string "No IP" é devolvida como um valor predefinido se os campos anteriores não estiverem definidos.ip
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
Exemplo 3

O exemplo seguinte tenta unir principal.hostname do evento $e1 e do evento $e2. Devolve um erro do compilador porque os argumentos são variáveis de eventos diferentes.

// returns a compiler error
"test" = strings.coalesce($e1.principal.hostname, $e2.principal.hostname)