X++: базисные типы данных
[id:54]
Как это не занудно, но я просто обязан об этом рассказать. Ведь это основательнейшая основа основ X++.
Итак, базисные типы данных или primitive data types:
Тип | Ключевое слово | Значение по умолчанию |
---|---|---|
Булев | boolean | false |
Дата | date | null |
Время | timeOfDay | 0 |
Перечисление | <имя_перечисления> | 0 или первый элемент в перечислении |
Целое 32-бита | int | 0 |
Целое 64-бита | int64 | 0 |
Вещественное | real | 0.00 |
Строка | str | "" (пустая строка) |
Эти типы используются как для создания переменных в коде, так и в качестве типов при создании полей таблиц в базе данных. А все потому, что в Аксапте стерта граница между системой и базой данных.
В третьей колонке таблицы приведены значения по умолчанию для каждого типа, что наталкивает на несколько важных выводов.
Во-первых, после создания переменной базисного типа она будет автоматически проинициализирована значением по умолчанию. Правда, этим сейчас уже никого не удивишь.
Во-вторых, любой из указанных типов приводиться к булеву типу, а приведенные в таблице значения по умолчанию обозначают «Ложь»; все остальное это «Истина». По-простому говоря, вы можете переменную базисного типа вставлять в условный оператор, например вот так:
if (my_integer_variable)
или
while (! my_date)
В-третьих, эти же типы данных используются при работе с базой данных. А как же эта проблема с NULL-значениями? Ведь известно, что в базах данных есть такое понятие, как «Отсутствие данных»/«Колбасы нет. Продавец ушла на склад»/«Извините, у нас учет». И это обозначается замечательным NULL-значением.
Создатели Аксапты отказались от концепции NULL. Каждое поле таблицы всегда содержит значение. А значения по умолчанию теперь интерпретируются системой как «Отсутствие данных».
Тип "Date" решил быть не как все; он всегда был какой-то не такой. Но о нем расскажу позже.
Итог:
- для базисных типов данных есть значения по умолчанию;
- для базисных типов данных нет понятия NULL;
- для базисных типов данных значения по умолчанию играют роль NULL-значений.
Комментариев нет:
Отправить комментарий