strings.coalesce
strings.coalesce(a, b, c, ...)
Descripción
Esta función toma una cantidad ilimitada de argumentos y devuelve el valor de la primera expresión que no se evalúa como una cadena vacía (por ejemplo, "valor distinto de cero"). Si todos los argumentos se evalúan como una cadena vacía, la llamada a la función devuelve una cadena vacía.
Los argumentos pueden ser literales, campos de eventos o llamadas a funciones. Todos los argumentos deben ser del tipo STRING. Si algún argumento es un campo de evento, los atributos deben ser del mismo evento.
Tipos de datos de parámetros
STRING
Tipo de datos que se devuelve
STRING
Muestras de código
Ejemplo 1
En el siguiente ejemplo, se incluyen variables de cadena como argumentos. La condición se evalúa como verdadera cuando (1) $e.network.email.from es suspicious@gmail.com o (2) $e.network.email.from está vacío y $e.network.email.to es suspicious@gmail.com.
"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
Ejemplo 2
En el siguiente ejemplo, se llama a la función coalesce con más de dos argumentos. Esta condición compara la primera dirección IP no nula del evento $e con los valores de la lista de referencia ip_watchlist. El orden en que se unen los argumentos en esta llamada es el mismo en que se enumeran en la condición de la regla:
- Primero se evalúa
$e.principal.ip. - A continuación, se evalúa
$e.src.ip. - A continuación, se evalúa
$e.target.ip. - Por último, la cadena "No IP" se devuelve como valor predeterminado si los campos
ipanteriores no están establecidos.
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
Ejemplo 3
En el siguiente ejemplo, se intenta fusionar principal.hostname del evento $e1 y el evento $e2. Devolverá un error del compilador porque los argumentos son variables de eventos diferentes.
// returns a compiler error
"test" = strings.coalesce($e1.principal.hostname, $e2.principal.hostname)