Класс any: различия между версиями
Перейти к навигации
Перейти к поиску
(Новая страница: «Класс any представляет собой типобезопасный контейнер, который может хранить значения лю...») |
|||
| Строка 77: | Строка 77: | ||
// Присваивание | // Присваивание | ||
any d = a; // Копирование | any d = a; // Копирование | ||
| + | |||
| + | |||
| + | [[Категория:AgavaSCADA/AgavaPLC]] | ||
Версия 10:04, 26 марта 2026
Класс any представляет собой типобезопасный контейнер, который может хранить значения любого типа - примитивы и объекты.
1 Методы класса
1.1 Конструкторы
any@ f()- Создает пустой объект
any - Не хранит никакого значения
- Создает пустой объект
any@ f(?&in) explicit- Создает объект
anyс копией переданного значения - Поддерживает любые типы
- Помечен как
explicitдля предотвращения неявных преобразований
- Создает объект
any@ f(const int64&in) explicit- Специализированный конструктор для 64-битных целых чисел
- Создает объект
anyс целочисленным значением
any@ f(const double&in) explicit- Специализированный конструктор для чисел с плавающей точкой
- Создает объект
anyсо значением double
1.2 Операторы
any &opAssign(any&in)- Оператор присваивания
- Копирует содержимое другого объекта
any - Возвращает ссылку на текущий объект
1.3 Методы хранения данных
void store(?&in)- Сохраняет значение любого типа в объекте
any - Для объектов: создает копию
- Для handle: увеличивает счетчик ссылок
- Для примитивов: копирует значение
- Сохраняет значение любого типа в объекте
void store(const int64&in)- Специализированная версия для 64-битных целых чисел
- Сохраняет целочисленное значение
void store(const double&in)- Специализированная версия для чисел с плавающей точкой
- Сохраняет значение double
1.4 Методы извлечения данных
bool retrieve(?&out) const- Извлекает сохраненное значение в переданную переменную
- Возвращает
trueесли типы совместимы, иначеfalse - Для handle: проверяет совместимость типов и выполняет приведение
bool retrieve(int64&out) const- Специализированная версия для 64-битных целых чисел
- Позволяет извлечь значение как int64
- Может выполнять преобразование из double
bool retrieve(double&out) const- Специализированная версия для чисел с плавающей точкой
- Позволяет извлечь значение как double
- Может выполнять преобразование из int64
2 Примеры использования
// Создание и использование any
any a; // Пустой объект
any b = 42; // Хранит целое число
any c = 3.14159; // Хранит double
// Сохранение значений
a.store("Hello"); // Сохранить строку
a.store(123); // Сохранить целое число
a.store(45.67); // Сохранить double
// Извлечение значений
int64 intValue;
if (b.retrieve(intValue))
// Успешно извлекли целое число
double doubleValue;
if (c.retrieve(doubleValue))
// Успешно извлекли double
// Присваивание
any d = a; // Копирование