История изменений
Исправление hateyoufeel, (текущая версия) :
Все же этим свойством пользуются, Option из Rust оптимизирует Empty как NULL если у него T указатель.
Вообще, тут в треде возникла путаница. Есть NULL в C как отдельное свойство системы указателей и есть просто нулевой указатель. И это должны быть два совершенно разных концепта. alysnix вон уже пошёл тирады двигать про особенные контроллеры памяти, бросающие исключение ему в штаны, и его фантазиям можно только позавидовать.
Я повторю свой тезис в максимально сжатом виде: на уровне языка не должно быть никаких специальных указателей, а ошибки должны возвращаться явно с использованием системы типов. Как именно это всё представлено после компиляции в машинном коде, на самом деле, вообще насрать 10 раз.
У тебя готовый, оптимизированный, машинный Option. Еще он не зависит от языка, и даже если в ассемблере ты допустишь ошибку с NULL, программа быстро вылетит.
Это не Option. Ты бы ещё нулевой делитель назвал Option. Ведь при делении на 0 тоже программа быстро вылетит.
даже если в ассемблере ты допустишь ошибку с NULL, программа быстро вылетит.
Алсо, смотри-ка, не вылетела!
Исправление hateyoufeel, :
Все же этим свойством пользуются, Option из Rust оптимизирует Empty как NULL если у него T указатель.
Вообще, тут в треде возникла путаница. Есть NULL в C как отдельное свойство системы указателей и есть просто нулевой указатель. И это должны быть два совершенно разных концепта. alysnix вон уже пошёл тирады двигать про особенные контроллеры памяти, бросающие исключение ему в штаны, и его фантазиям можно только позавидовать.
Я повторю свой тезис в максимально сжатом виде: на уровне языка не должно быть никаких специальных указателей, а ошибки должны возвращаться явно с использованием системы типов. Как именно это всё представлено после компиляции в машинном коде, на самом деле, вообще насрать 10 раз.
У тебя готовый, оптимизированный, машинный Option. Еще он не зависит от языка, и даже если в ассемблере ты допустишь ошибку с NULL, программа быстро вылетит.
Это не Option. Ты бы ещё нулевой делитель назвал Option. Ведь при делении на 0 тоже программа быстро вылетит.
Исправление hateyoufeel, :
Все же этим свойством пользуются, Option из Rust оптимизирует Empty как NULL если у него T указатель.
Вообще, тут в треде возникла путаница. Есть NULL в C как отдельное свойство системы указателей и есть просто нулевой указатель. И это должны быть два совершенно разных концепта. alysnix вон уже пошёл тирады двигать про особенные контроллеры памяти, бросающие исключение ему в штаны, и его фантазиям можно только позавидовать.
Я повторю свой тезис в максимально сжатом виде: на уровне языка не должно быть никаких специальных указателей, а ошибки должны возвращаться явно с использованием системы типов. Как именно это всё представлено после компиляции в машинном коде, на самом деле, вообще насрать 10 раз.
Исправление hateyoufeel, :
Все же этим свойством пользуются, Option из Rust оптимизирует Empty как NULL если у него T указатель.
Вообще, тут в треде возникла путаница. Есть NULL в C как отдельное свойство системы указателей и есть просто нулевой указатель. И это должны быть два совершенно разных концепта. alysnix вон уже пошёл тирады двигать про особенные контроллеры памяти, бросающие исключение ему в штаны, и его фантазиям можно только позавидовать.
Я повторю свой тезис в максимально сжатом виде: на уровне языка не должно быть никаких специальных указателей, а ошибки должны возвращаться явно с использованием системы типов.
Исходная версия hateyoufeel, :
Все же этим свойством пользуются, Option из Rust оптимизирует Empty как NULL если у него T указатель.
Вообще, тут в треде возникла путаница. Есть NULL в C как отдельное свойство системы указателей и есть просто нулевой указатель. И это должны быть два совершенно разных концепта. alysnix вон уже пошёл тирады двигать про особенные контроллеры памяти, бросающие исключение ему в штаны, и его фантазиям можно только позавидовать.
Я повторю свой тезис в максимально сжатом виде: на уровне языка не должно быть никаких специальных указателей.