История изменений
Исправление
stevejobs,
(текущая версия)
:
macro_rules! full_while (
($e:expr; $body:block )
=> (
let mut x = true;
loop {
x = $e;
if (true != x) { break; }
$body;
}
);
);
fn post_decrement(r: &mut i32) -> i32 {
let temp = *r;
*r = *r - 1;
return temp;
}
fn main() {
let mut i = 10;
full_while!(post_decrement(&mut i) > 0; {
println!("{}", i);
});
}
На самом деле работает и просто вот так:
fn post_decrement(r: &mut i32) -> i32 {
let temp = *r;
*r = *r - 1;
return temp;
}
fn main() {
let mut i = 10;
while (post_decrement(&mut i) > 0) {
println!("{}", i);
}
}
Но полная версия выше показывает, что нужно делать нытикам, когда они уже не в силах «жрать что дают» xDDD
Исходная версия
stevejobs,
:
Решение на Rust =)
macro_rules! full_while (
($e:expr; $body:block )
=> (
let mut x = true;
loop {
x = $e;
if (true != x) { break; }
$body;
}
);
);
fn post_decrement(r: &mut i32) -> i32 {
let temp = *r;
*r = *r - 1;
return temp;
}
fn main() {
let mut i = 10;
full_while!(post_decrement(&mut i) > 0; {
println!("{}", i);
});
}