strings.coalesce

strings.coalesce(a, b, c, ...)

תיאור

הפונקציה הזו מקבלת מספר בלתי מוגבל של ארגומנטים ומחזירה את הערך של הביטוי הראשון שלא מוערך כמחרוזת ריקה (לדוגמה, 'ערך שאינו אפס'). אם כל הארגומנטים מחזירים מחרוזת ריקה, הקריאה לפונקציה מחזירה מחרוזת ריקה.

הארגומנטים יכולים להיות ערכים מילוליים, שדות של אירועים או קריאות לפונקציות. כל הארגומנטים צריכים להיות מסוג STRING. אם אחד מהארגומנטים הוא שדה אירוע, המאפיינים חייבים להיות מאותו אירוע.

סוגי נתונים של פרמטרים

STRING

סוג הערך שמוחזר

STRING

דוגמאות קוד

דוגמה 1

בדוגמה הבאה משתנים מסוג מחרוזת משמשים כארגומנטים. התנאי מחזיר את הערך True אם (1) $e.network.email.from הוא suspicious@gmail.com או (2) $e.network.email.from ריק ו-$e.network.email.to הוא suspicious@gmail.com.

"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
דוגמה 2

בדוגמה הבאה מופעלת הפונקציה coalesce עם יותר משני ארגומנטים. התנאי הזה משווה את כתובת ה-IP הראשונה שאינה null מהאירוע $e לערכים ברשימת ההפניה ip_watchlist. הסדר שבו הארגומנטים מתמזגים בקריאה הזו זהה לסדר שבו הם מפורטים בתנאי הכלל:

  1. הביטוי $e.principal.ip מוערך קודם.
  2. ‫$e.src.ip נבדק בשלב הבא.
  3. ‫$e.target.ip נבדק בשלב הבא.
  4. לבסוף, המחרוזת 'No IP' מוחזרת כערך ברירת מחדל אם השדות הקודמים ip לא מוגדרים.
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
דוגמה 3

בדוגמה הבאה מנסים לאחד את principal.hostname מהאירוע $e1 ומהאירוע $e2. הפונקציה תחזיר שגיאת קומפילציה כי הארגומנטים הם משתני אירוע שונים.

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