strings.coalesce
strings.coalesce(a, b, c, ...)
설명
이 함수는 인수를 무제한으로 사용하고 빈 문자열로 평가되지 않는 첫 번째 표현식의 값을 반환합니다(예: '0이 아닌 값'). 모든 인수가 빈 문자열로 평가되면 함수 호출에서 빈 문자열을 반환합니다.
인수는 리터럴, 이벤트 필드 또는 함수 호출일 수 있습니다. 모든 인수는 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)