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 als leerer 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
Das folgende Beispiel enthält Stringvariablen als Argumente. 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, die nicht null ist, 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.ipwird zuerst ausgewertet.- Als Nächstes wird
$e.src.ipausgewertet. - Als Nächstes wird
$e.target.ipausgewertet. - 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 dem Ereignis $e1 und dem 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)