strings.coalesce

Unterstützt in:
strings.coalesce(a, b, c, ...)

Beschreibung

Diese Funktion akzeptiert eine unbegrenzte Anzahl von Argumenten und gibt den Wert des ersten Ausdrucks zurück, der nicht zu einem leeren String ausgewertet wird (z. B. „Wert ungleich null“). Wenn alle Argumente als leerer String ausgewertet werden, gibt der Funktionsaufruf einen leeren String zurück.

Die Argumente können Literale, Ereignisfelder oder Funktionsaufrufe sein. Alle Argumente müssen vom Typ STRING sein. Wenn Argumente Ereignisfelder sind, müssen die Attribute aus demselben Ereignis stammen.

Parameterdatentypen

STRING

Rückgabetyp

STRING

Codebeispiele

Beispiel 1

Im folgenden Beispiel werden Stringvariablen als Argumente verwendet. Die Bedingung wird als „true“ ausgewertet, wenn (1) $e.network.email.from gleich suspicious@gmail.com ist oder (2) $e.network.email.from leer ist und $e.network.email.to gleich suspicious@gmail.com ist.

"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
Beispiel 2

Im folgenden Beispiel wird die Funktion coalesce mit mehr als zwei Argumenten aufgerufen. Bei dieser Bedingung wird die erste IP-Adresse ungleich null aus dem Ereignis $e mit den Werten in der Referenzliste ip_watchlist verglichen. Die Reihenfolge, in der die Argumente in diesem Aufruf zusammengeführt werden, entspricht der Reihenfolge, in der sie in der Regelbedingung aufgeführt sind:

  1. $e.principal.ip wird zuerst ausgewertet.
  2. Als Nächstes wird $e.src.ip ausgewertet.
  3. Als Nächstes wird $e.target.ip ausgewertet.
  4. Schließlich wird der String „No IP“ als Standardwert zurückgegeben, wenn die vorherigen ip-Felder nicht festgelegt sind.
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
Beispiel 3

Im folgenden Beispiel wird versucht, principal.hostname aus Ereignis $e1 und Ereignis $e2 zusammenzuführen. Es wird ein Compilerfehler zurückgegeben, da die Argumente unterschiedliche Ereignisvariablen sind.

// returns a compiler error
"test" = strings.coalesce($e1.principal.hostname, $e2.principal.hostname)