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 中的值。在此呼叫中合併引數的順序,與在規則條件中列舉引數的順序相同:

  1. 系統會先評估 $e.principal.ip。
  2. $e.src.ip 接著會評估。
  3. $e.target.ip 接著會評估。
  4. 最後,如果先前的 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)