Update page '1.1. Система типов'
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)
|
Loading…
Reference in New Issue
Block a user