strings.coalesce
strings.coalesce(a, b, c, ...)
Descrição
Essa função recebe 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 resultarem em uma string vazia, a chamada de função vai retornar uma string vazia.
Os argumentos podem ser literais, campos de eventos ou chamadas de função. Todos os argumentos precisam ser do tipo STRING. Se algum argumento for um campo de evento, os atributos precisam 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" é retornada como um valor padrão se os campos
ipanteriores 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 agrupar 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)