strings.coalesce
strings.coalesce(a, b, c, ...)
Descrição
Essa função usa um número ilimitado de argumentos e retorna 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 vai retornar uma string vazia.
Os argumentos podem ser literais, campos de evento ou chamadas de função. Todos os argumentos precisam ser do tipo STRING
. Se algum argumento for um campo de evento, os atributos precisarão ser do mesmo evento.
Tipos de dados de parâmetros
STRING
Tipo de retorno
STRING
Amostras de código
Exemplo 1
O exemplo a seguir 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 a seguir chama a função coalesce
com mais de dois
argumentos. Essa 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 agrupados nessa chamada é a mesma em que são enumerados na condição da regra:
$e.principal.ip
é avaliado primeiro.- Em seguida,
$e.src.ip
é avaliado. - Em seguida,
$e.target.ip
é avaliado. - Por fim, a string "No IP" será retornada como um valor padrão se os campos
ip
anteriores não estiverem definidos.
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
Exemplo 3
O exemplo a seguir tenta unir principal.hostname
do evento $e1
e do evento $e2
. Ele vai retornar 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)