Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

/values/strings = boolean(/values/booleans)
true

Множества

/values/strings
и
/values/booleans
будут пустыми, поэтому, сравнивая первое с булевым значением второго, мы получим "истину", так как "ложь" равна "лжи".

Примеры сравнения множества узлов с числом:

/values/number < 1
true

Множество узлов

/values/number
может считаться меньше, чем число
1
, поскольку первый элемент
этого множества имеет строковое значение "
0.5
", при приведении которого к числу мы получаем
0.5
, что меньше
1
.

/values/number > 1
true

То же самое множество узлов может считаться также и большим

1
, поскольку последний элемент этого множества имеет строковое значение "
1.5
", при приведении которого к числу мы получаем
1.5
, что больше
1
.

/values/number = 1
true

Второй элемент множества

/values/number
равен
1
, то есть и это сравнение будет истинным.

Примеры сравнения множества узлов со строковым значением:

/values/number = '1'
false

Множество

/values/number
не будет равно строке "
1
", поскольку ни один из узлов этого множества не имеет строкового значения "
1
".

/values/number = '1.0'
true

Множество

/values/number
будет считаться равным строке "
1.0
", поскольку второй узел этого множества имеет текстовое значение "
1.0
".

/values/number != '1.0'
true

Множество

/values/number
может также считаться не равным строке "
1.0
", поскольку первый узел этого множества имеет текстовое значение "
0.5
", не равное "
1.0
".

Примеры сравнения двух множеств узлов:

/values/number = /values/string
true

Для двух этих множеств будет выполняться равенство, поскольку оба они имеют по узлу с равными строковыми значениями — первый узел

/values/number
и первый узел
/values/string
равны "
0.5
".

values/number != /values/string
true

Для этих же множеств будет выполняться неравенство, поскольку в них найдется неравная пара узлов (например, узел с текстовым значением "

1.0
" в
/values/number
и узел с текстовым значением "
50%
" в
/values/string
).

Определим теперь равенство и неравенство значений простых типов. При проверке на равенство или неравенство оба операнда приводятся к общему типу и сравниваются. Приведение к общему типу производится следующим образом:

□ если

хотя бы один из операндов имеет булевый тип, второй также приводится к булевому типу;

□ иначе, если хотя бы один из операндов — число, второй также приводится к численному типу;

□ иначе, если хотя бы один из операндов — строка, второй также приводится к строковому типу.

После того, как оба операнда приведены к некоторому общему типу, они проверяются на равенство или неравенства как два значения этого общего типа:

□ два булевых значения равны тогда и только тогда, когда они оба являются "истиной" или оба являются "ложью";

□ равенство численных значений понимается в обычном смысле (строгое определение равенства чисел дано в стандарте IEEE 754, но вряд ли оно представляет для нас большой интерес);

□ две строки равны тогда и только тогда, когда они представлены одинаковыми последовательностями Unicode-символов.

Два значения простых типов (то есть — булевого, численного или строкового типа) неравны тогда и только тогда, когда для них не выполняется равенство.

Примеры сравнения значений простых типов:

□ 

true = 1
true

При приведении числа

1
к булевому типу получается "истина", что и подтверждается этим равенством.

□ 

true = 100
true

Результатом приведения числа

100
к булевому типу также является "истина".

□ 

false = 'false'
false

При приведении непустой строки "false" к булевому типу, получается "истина". Отсюда — неверность равенства.

□ 

.5 =0.5
true

.5
и
0.5
представляют одно и то же число, хоть и они записаны в разной форме.

□ 

.5 = '0.5'
true

Это равенство также будет верным, поскольку результатом преобразования строки "

0.5
" в число будет также
0.5
.

□ 

1 != 'two'
true

Результатом преобразования строки "

two
" в численный тип будет значение
NaN
, которое не равно
1
.

При сравнении с использованием операторов "

<
", "
<=
", "
>
" и "
>=
", оба операнда всегда приводятся к численному типу и сравниваются как числа.

Примеры сравнений с использованием операторов "

<
", "
<=
", "
>
" и "
>=
":

false &gt; true
false

В численном виде

true
соответствует
1
, a
false
0
, то есть это сравнение равносильно сравнению
0 > 1
, результатом которого является "ложь".

Поделиться:
Популярные книги

Ваше Сиятельство 5

Моури Эрли
5. Ваше Сиятельство
Фантастика:
городское фэнтези
аниме
5.00
рейтинг книги
Ваше Сиятельство 5

Контртеррор

Валериев Игорь
6. Ермак
Фантастика:
альтернативная история
5.00
рейтинг книги
Контртеррор

Тринадцатый V

NikL
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый V

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Барон не признает правила

Ренгач Евгений
12. Закон сильного
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Барон не признает правила

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Капитан космического флота

Борчанинов Геннадий
2. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
5.00
рейтинг книги
Капитан космического флота

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия

Здравствуй, 1984-й

Иванов Дмитрий
1. Девяностые
Фантастика:
альтернативная история
6.42
рейтинг книги
Здравствуй, 1984-й

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

Как я строил магическую империю 5

Зубов Константин
5. Как я строил магическую империю
Фантастика:
попаданцы
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 5

Эволюционер из трущоб. Том 9

Панарин Антон
9. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 9

#НенавистьЛюбовь

Джейн Анна
Любовные романы:
современные любовные романы
6.33
рейтинг книги
#НенавистьЛюбовь