strings.coalesce

支持的语言:
strings.coalesce(a, b, c, ...)

说明

此函数可接受任意数量的实参,并返回第一个计算结果不为空字符串(例如“非零值”)的表达式的值。如果所有实参的计算结果均为空字符串,则函数调用会返回一个空字符串。

参数可以是字面量、事件字段或函数调用。所有实参都必须是 STRING 类型。如果任何实参是事件字段,则这些属性必须来自同一事件。

形参数据类型

STRING

返回类型

STRING

代码示例

示例 1

以下示例包含字符串变量作为实参。在以下情况下,该条件的计算结果为 true:(1) $e.network.email.fromsuspicious@gmail.com;(2) $e.network.email.from 为空且 $e.network.email.tosuspicious@gmail.com

"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
示例 2

以下示例调用了具有两个以上实参的 coalesce 函数。此条件会将事件 $e 中的第一个非 null 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)