Страницы

Поиск по вопросам

среда, 12 декабря 2018 г.

В чем разница между loop и while true?

В чем разница между loop и while true в rust?
В документации написано что:
loop {} Интерпретируется по другому компилятором чем:
while true {} Хотел бы понять в чем эта разница и на сколько плохо использовать не loop, а while true
версия вопроса на Английском от @aij


Ответ

На такой вопрос был дан ответ в Reddit.
Разница заключается в том, что в случае while true все переменные должны быть инициализированы до цикла, а в случае loop это не обязательно:
Пример с loop
let x; loop { x = 1; break; } println!("{}", x) этот код отлично работает, однако следующий
let x; while true { x = 1; break; } println!("{}", x); покажет ошибку компиляции "use of possibly uninitialised variable" с указанием на x в println. Во втором случае компилятор не определяет, что тело цикла всегда выполнится хотя бы один раз.
перевод ответа @telotortium

Комментариев нет:

Отправить комментарий