strings.coalesce
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:
$e.principal.ip
wird zuerst ausgewertet.- Als Nächstes wird
$e.src.ip
ausgewertet. - Als Nächstes wird
$e.target.ip
ausgewertet. - 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)