Здравствуйте!
Если честно, то я вообще не понимаю, что ваша функция должна делать. В текущем варианте count() - это чистая функция, которая всегда возвращает одни и те же значения для true и для false соответственно. Кстати, что такое read_bool()? В стандартной библиотеке такого метода нет.
Непонятно также, зачем вам столько указателей в count. Вот вариант без указателей, который работает точно так же:
fn count(n: bool) -> u8 {
let mut m = false;
let mut ct: u8 = 0;
if n && !m {
ct += 1;
}
m = n;
ct
}
Вероятно, так лучше видно, что функция весьма странная. Зачем, например, переприсваивать m, если это локальная переменная и её больше никто не увидит? Более того, m всегда false => !m всегда true => `&& !m` - это лишнее условие. Вообще всё это эквивалентно такому:
fn count(n: bool) -> u8 {
if n { 1 } else { 0 }
}
Опишите, пожалуйста, поподробнее, что вам нужно получить.
> --
> Вы получили это сообщение, поскольку подписаны на группу "Rust по-русски".
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес
rust-russian...@googlegroups.com.
> Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке
https://groups.google.com/d/msgid/rust-russian/e85a2e24-cc94-41b2-8511-db7f8ccc1151%40googlegroups.com.
> Чтобы настроить другие параметры, перейдите по ссылке
https://groups.google.com/d/optout.