strings.coalesce
strings.coalesce(a, b, c, ...)
說明
這項函式可接受無限數量的引數,並傳回第一個未評估為空字串的運算式值 (例如「non-zero value」)。如果所有引數的計算結果都是空字串,函式呼叫會傳回空字串。
引數可以是常值、事件欄位或函式呼叫。所有引數都必須是 STRING 型別。如有任何引數是事件欄位,屬性必須來自同一個事件。
參數資料類型
STRING
傳回類型
STRING
程式碼範例
範例 1
以下範例包含字串變數做為引數。當 (1) $e.network.email.from 為 suspicious@gmail.com 或 (2) $e.network.email.from 為空且 $e.network.email.to 為 suspicious@gmail.com 時,條件評估結果為 true。
"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
範例 2
以下範例會使用兩個以上的引數呼叫 coalesce 函式。這項條件會比較事件 $e 中的第一個非空值 IP 位址與參照清單 ip_watchlist 中的值。在此呼叫中合併引數的順序,與在規則條件中列舉引數的順序相同:
- 系統會先評估
$e.principal.ip。 $e.src.ip接著會評估。$e.target.ip接著會評估。- 最後,如果先前的
ip欄位未設定,系統會傳回預設值「No IP」。
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
範例 3
以下範例會嘗試合併事件
$e1 和事件 $e2 中的 principal.hostname。由於引數是不同的事件變數,因此會傳回編譯器錯誤。
// returns a compiler error
"test" = strings.coalesce($e1.principal.hostname, $e2.principal.hostname)