strings.coalesce
strings.coalesce(a, b, c, ...)
Descrizione
Questa funzione accetta un numero illimitato di argomenti e restituisce il valore della prima espressione che non restituisce una stringa vuota (ad esempio "valore diverso da zero"). Se tutti gli argomenti restituiscono una stringa vuota, la chiamata di funzione restituisce una stringa vuota.
Gli argomenti possono essere valori letterali, campi evento o chiamate di funzioni. Tutti gli argomenti devono essere di tipo STRING
. Se alcuni argomenti sono campi evento, gli attributi devono provenire dallo stesso evento.
Tipi di dati dei parametri
STRING
Tipo restituito
STRING
Esempi di codice
Esempio 1
Il seguente esempio include variabili stringa come argomenti. La condizione
restituisce true quando (1) $e.network.email.from
è suspicious@gmail.com
o
(2) $e.network.email.from
è vuoto e $e.network.email.to
è
suspicious@gmail.com
.
"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
Esempio 2
Il seguente esempio chiama la funzione coalesce
con più di due
argomenti. Questa condizione confronta il primo indirizzo IP non nullo dell'evento $e
con i valori nell'elenco di riferimento ip_watchlist
. L'ordine in cui gli
argomenti vengono uniti in questa chiamata è lo stesso in cui vengono
enumerati nella condizione della regola:
$e.principal.ip
viene valutato per primo.$e.src.ip
viene valutato successivamente.$e.target.ip
viene valutato successivamente.- Infine, la stringa "No IP" viene restituita come valore predefinito se i campi
ip
precedenti non sono impostati.
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
Esempio 3
L'esempio seguente tenta di unire principal.hostname
dall'evento
$e1
e dall'evento $e2
. Restituirà un errore del compilatore perché gli argomenti sono
variabili evento diverse.
// returns a compiler error
"test" = strings.coalesce($e1.principal.hostname, $e2.principal.hostname)