The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск языка программирования Rust 1.71 "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Выпуск языка программирования Rust 1.71 " +/
Сообщение от Аноним (183), 15-Июл-23, 09:25 
На ассемблере будет обычный int. Но компилятор сможет учитывать, что этот int в своем нормальном состоянии никогда не будет равен нулю и использовать это в своих целях.

Самый банальный пример то, как будут выглядеть опциональные типы, то, что в C++ std::optional, а в расте std::option.

В структуре нужно хранить само значение и признак того, валидно оно или нет.

Т.е. обычно структура на плюсах упрощенно будет выглядеть как-то так:


class Option<T> {
    bool is_empty;
    T value;
}


В общем виде, примерно так же будет выглядеть эта структура и на расте. Но, если вместо T использовать значение, у которого одно из значений может отсутствовать, например нулевое значение, то от булевского флага можно избавиться и использовать нулевое значение этого типа как признак того, что этот optional пустой.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск языка программирования Rust 1.71 , opennews, 14-Июл-23, 12:50  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру