MarkLogi c: fn.empty fn.exsits! == null! == "" - PullRequest
1 голос
/ 06 апреля 2020

Какова окончательная разница между приведенным ниже утверждением, чтобы определить, возвращает ли cts.search действительный документ?

1. if (!fn.empty(acctDoc)) {....}
    2. if (!fn.exists(acctDoc)) {....}
    3. if (acctDoc !== null || acctDoc !== "") {...}

Мой опыт показывает, что № 3 работает во всех аспектах.

1 Ответ

0 голосов
/ 06 апреля 2020
  1. if (!fn.empty(acctDoc)) {....} Возвращает true, если acctDoc не пустая последовательность .
  2. if (!fn.exists(acctDoc)) {....} Возвращает true, если acctDoc - пустая последовательность .
  3. if (acctDoc !== null || acctDoc !== "") {...} Возвращает true, если acctDoc не null или не является пустой строкой.

fn.empty ()

Если значение $ arg является пустой последовательностью, функция возвращает true; в противном случае функция возвращает false.

fn.exists ()

Если значение $ arg не является пустой последовательностью, функция возвращает истину; в противном случае функция возвращает false.

Используя эту тестовую функцию:

function test(acctDoc) {
  const results = [];
  if (!fn.empty(acctDoc)) { results.push("not empty") };
  if (!fn.exists(acctDoc)) { results.push("does not exist") };
  if (acctDoc !== null || acctDoc !== "") { results.push("not null or is not empty string") };
  return results; 

}

  • test("test") возвращает ["not empty", "not null or is not empty string"]
  • test("") возврат ["not empty", "not null or is not empty string"]
  • test(null) возврат ["does not exist", "not null or is not empty string"]
  • test(fn.head(fn.doc())) возврат ["not empty", "not null or is not empty string"]
  • test(fn.doc(fn.string(xdmp.random()))) возврат ["does not exist", "not null or is not empty string"]
...