strings.coalesce

支援的國家/地區:
strings.coalesce(a, b, c, ...)

說明

這個函式可接受無限數量的引數,並傳回第一個未評估為空字串的運算式值 (例如「非零值」)。如果所有引數評估結果都是空字串,函式呼叫會傳回空字串。

引數可以是常值、事件欄位或函式呼叫。所有引數都必須是 STRING 型別。如有任何引數是事件欄位,屬性必須來自同一個事件。

參數資料類型

STRING

傳回類型

STRING

程式碼範例

範例 1

以下範例包含做為引數的字串變數。當 (1) $e.network.email.fromsuspicious@gmail.com 或 (2) $e.network.email.from 為空且 $e.network.email.tosuspicious@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

以下範例嘗試從事件 principal.hostname 和事件 $e2 合併 principal.hostname$e1由於引數是不同的事件變數,因此會傳回編譯器錯誤。

// returns a compiler error
"test" = strings.coalesce($e1.principal.hostname, $e2.principal.hostname)