توابع اشکال‌زدایی

عملکردهای اشکال‌زدایی

نام شرح
EXISTS اگر مقدار، مقدار غایب نباشد، TRUE را برمی‌گرداند
IS_ABSENT اگر مقدار از نوع مقدار غایب باشد، TRUE را برمی‌گرداند
IF_ABSENT اگر مقدار وجود نداشته باشد، آن را با عبارت جایگزین می‌کند
IS_ERROR بررسی می‌کند که آیا عبارت زیربنایی خطایی ایجاد کرده است یا نه و آن را می‌گیرد
IF_ERROR اگر مقدار خطا داده باشد، آن را با عبارت جایگزین می‌کند
ERROR ارزیابی را خاتمه می‌دهد و خطایی با پیام مشخص‌شده برمی‌گرداند

EXISTS

نحو:

exists(value: ANY) -> BOOLEAN

شرح:

اگر value مقدار غایب نباشد، TRUE را برمی‌گرداند.

نمونه:

value exists(value)
‫۰ لیتر 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();
پایتون
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("rating").exists().as_("hasRating"))
    .execute()
)
جاوا
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

شرح:

اگر value مقدار غایب باشد، TRUE را برمی‌گرداند و درغیراین‌صورت FALSE را برمی‌گرداند. مقادیر غایب مقادیری هستند که در ورودی وجود ندارند، مانند فیلد سند مفقودشده.

نمونه:

value is_absent(value)
‫۰ لیتر 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)
‫۵ لیتر ‫۰ لیتر ‫۵ لیتر
NULL ‫۰ لیتر NULL
ABSENT ‫۰ لیتر ‫۰ لیتر

IS_ERROR

نحو:

is_error(try: ANY) -> BOOLEAN

شرح:

اگر درطول ارزیابی try خطایی رخ دهد، TRUE را برمی‌گرداند. درغیراین‌صورت، 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 یک لیتر یک لیتر
FALSE یک لیتر ERROR ("no condition matched")