strings.coalesce

Compatible con:
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 muestra

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:

  1. $e.principal.ip se evalúa primero.
  2. A continuación, se evalúa $e.src.ip.
  3. A continuación, se evalúa $e.target.ip.
  4. Por último, la cadena "No IP" se devuelve como un valor predeterminado si los campos ip anteriores no están configurados.
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)