старых функций из С/C++ на Rust. Ранее для проверки валидности передаваемых параметров в функцию я явно проверял на недопустимые значения в pointer-ах, чтобы исключить случайное (а может и намеренное) попадание NULL в аргументы, например:
void write_log (char * message)
{
if (message==NULL) return;
...
}
Правильно ли я понимаю, что в RUSTе этого вообще не нужно делать. Потому что, NULL понятия в нем нет, и сам компилятор гарантирует, что все, что "попадет" в аргументы, однозначно будет "доступно". Может подскажете, как правильно с точки зрения идеологии языка нужно это делать? Спасибо.
Нет, не надо. Референсы гарантировано non-null.
& - никогда не null *const - maybe null
Третий кит - Box<T>, тоже не null
NonNull еще добавим)
Обсуждают сегодня