strings.coalesce
strings.coalesce(a, b, c, ...)
説明
この関数は引数を無制限に受け取り、空の文字列と評価されない最初の式の値を返します(「ゼロ以外の値」など)。すべての引数が空の文字列に評価される場合、関数呼び出しは空の文字列を返します。
引数には、リテラル、イベント フィールド、関数呼び出しを使用できます。すべての引数は 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
次の例では、3 つ以上の引数を使用して coalesce
関数を呼び出します。この条件は、イベント $e
の最初の null 以外の 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)