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. הסדר שבו הארגומנטים מתמזגים בקריאה הזו זהה לסדר שבו הם מפורטים בתנאי הכלל:
- הביטוי
$e.principal.ipמוערך קודם. -
$e.src.ipנבדק בשלב הבא. -
$e.target.ipנבדק בשלב הבא. - לבסוף, המחרוזת '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)