strings.coalesce
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:
$e.principal.ip
é avaliado primeiro.- Em seguida, é avaliado o elemento
$e.src.ip
. - Em seguida, é avaliado o elemento
$e.target.ip
. - 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)