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](https://gogs.lirent.ru/lirent/libcdsb/src/master/include/vtype.h)**, которая, в свою очередь, определяет поведение ряда контейнеров (ячеек внутри контейнеров), а также должна обрабатываться пользовательским кодом, для однозначного определения типа поступивших данных.
|
||||||
|
|
||||||
|
#### Сравнение системных числовых типов
|
||||||
|
|
||||||
Деталью, требующей дополнительного упоминания, является принцип сравнения системных числовых типов, что является важным аспектом при поиске значений, внутри контейнеров. Так,
|
Деталью, требующей дополнительного упоминания, является принцип сравнения системных числовых типов, что является важным аспектом при поиске значений, внутри контейнеров. Так,
|
||||||
|
|
||||||
- `(vtype_bool)1 == (vtype_int64)1`
|
- `(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)
|
[Далее: 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