diff --git a/1.1. Система типов.md b/1.1. Система типов.md index ca02266..e8e8e8f 100644 --- a/1.1. Система типов.md +++ b/1.1. Система типов.md @@ -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) \ No newline at end of file