ניפוי באגים בפונקציות

פונקציות לניפוי באגים

שם תיאור
EXISTS הפונקציה מחזירה את הערך TRUE אם הערך הוא לא ערך חסר
IS_ABSENT הפונקציה מחזירה את הערך TRUE אם הערך הוא ערך חסר
IF_ABSENT החלפת הערך בביטוי אם הוא חסר
IS_ERROR תופס ובודק אם הביטוי הבסיסי זרק שגיאה
IF_ERROR הפונקציה מחליפה את הערך בביטוי אם הוא החזיר שגיאה
ERROR הפונקציה מסיימת את ההערכה ומחזירה שגיאה עם ההודעה שצוינה

EXISTS

תחביר:

exists(value: ANY) -> BOOLEAN

תיאור:

הפונקציה מחזירה את הערך TRUE אם value הוא לא הערך החסר.

לדוגמה:

value exists(value)
0L TRUE
"foo" TRUE
NULL TRUE
ABSENT FALSE
Node.js
const result = await db.pipeline()
  .collection("books")
  .select(field("rating").exists().as("hasRating"))
  .execute();

Web

לדוגמה:

const result = await execute(db.pipeline()
  .collection("books")
  .select(field("rating").exists().as("hasRating"))
);
Swift
let result = try await db.pipeline()
  .collection("books")
  .select([Field("rating").exists().as("hasRating")])
  .execute()

Kotlin

לדוגמה:

val result = db.pipeline()
    .collection("books")
    .select(field("rating").exists().alias("hasRating"))
    .execute()

Java

לדוגמה:

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(field("rating").exists().alias("hasRating"))
    .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("rating").exists().as_("hasRating"))
    .execute()
)
Java
Pipeline.Snapshot result =
    firestore
        .pipeline()
        .collection("books")
        .select(exists(field("rating")).as("hasRating"))
        .execute()
        .get();
המשך
snapshot := client.Pipeline().
	Collection("books").
	Select(firestore.Fields(
		firestore.FieldExists(firestore.FieldOf("rating")).As("hasRating"),
	)).
	Execute(ctx)

IS_ABSENT

תחביר:

is_absent(value: ANY) -> BOOLEAN

תיאור:

הפונקציה מחזירה את הערך TRUE אם value הוא הערך החסר, ואת הערך FALSE אם לא. ערכים חסרים הם ערכים שלא קיימים בקלט, כמו שדה חסר במסמך.

לדוגמה:

value is_absent(value)
0L FALSE
"foo" FALSE
NULL FALSE
ABSENT TRUE

IF_ABSENT

תחביר:

if_absent(value: ANY, replacement: ANY) -> ANY

תיאור:

אם value הוא ערך חסר, הפונקציה מחשבת ומחזירה את replacement. אחרת, הפונקציה מחזירה את הערך value.

לדוגמה:

value replacement if_absent(value, replacement)
5L 0L 5L
NULL 0L NULL
ABSENT 0L 0L

IS_ERROR

תחביר:

is_error(try: ANY) -> BOOLEAN

תיאור:

הפונקציה מחזירה את הערך TRUE אם נזרקת שגיאה במהלך ההערכה של try. אחרת, הפונקציה מחזירה את הערך FALSE.

IF_ERROR

תחביר:

if_error(try: ANY, catch: ANY) -> ANY

תיאור:

אם מתקבלת שגיאה במהלך ההערכה של try, הפונקציה מעריכה ומחזירה את replacement. אחרת, הפונקציה מחזירה את הערך המחושב של try.

שגיאה

תחביר:

error(message: STRING) -> ANY

תיאור:

חישוב הפונקציה error גורם לחישוב של צינור עיבוד הנתונים להסתיים עם שגיאה. הערך של message שצוין נכלל בשגיאה.

לדוגמה:

cond res switch_on(cond, res, error("no condition matched"))
TRUE 1L 1L
FALSE 1L ERROR ("no condition matched")