Update page '1.1. Система типов'

Gregory Lirent 2022-08-17 11:20:23 +03:00
parent bc1959e1fd
commit 406caa8fee

@ -30,6 +30,8 @@
Каждому из вышеперечисленных типов, соотвествует константа, установленная в рамках перечисления **[vtype](https://gogs.lirent.ru/lirent/libcdsb/src/master/include/vtype.h)**, которая, в свою очередь, определяет поведение ряда контейнеров (ячеек внутри контейнеров), а также должна обрабатываться пользовательским кодом, для однозначного определения типа поступивших данных.
#### Сравнение системных числовых типов
Деталью, требующей дополнительного упоминания, является принцип сравнения системных числовых типов, что является важным аспектом при поиске значений, внутри контейнеров. Так,
- `(vtype_bool)1 == (vtype_int64)1`
@ -43,4 +45,18 @@
Иными словами, сравнение всегда производится на базе реального значения числа, а не на базе представления данного числа в памяти. Соответсвенно, в случае необходимости разделения чисел не только по значению, но и по типу, данная задача лежит в плоскости пользовательского решения, так как решение оной не предоставляется данным проектом.
#### Межтиповое сравнение
В случае, если производится сравнение между несравнимыми типами (например, между **vtype_int64** и **vtype_string**) большим будет всегда то значение, значение константы типа которого (**[vtype](https://gogs.lirent.ru/lirent/libcdsb/src/master/include/vtype.h)**) больше другого.
#### Сравнение контейнеров между собой
Контейнеры имеющие один и тот же тип, - сравнимы между собой. Однако равны они будут только в том случае, если
- Они имеют равное количество элементов
- Они имеют равнозначный порядок элементов
- Значение их элементов полностью эквиваленты как по ключу (там, где это применимо), так и по значению.
В противном случае, результат сравнения будет равен результату первого несоответствия данным условиям.
[Далее: 1.2. Работа с памятью](https://gogs.lirent.ru/lirent/libcdsb/wiki/1.2.+%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+%D1%81+%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C%D1%8E)