🦀Rust-задача: неожиданный вывод из-за владения и `for`
fn main() { let data = vec!["rust", "go", "zig"];
for item in data { println!("{item}"); }
println!("{:?}", data); }
❓Что произойдёт при компиляции и запуске?
• a) Выведет rust, go, zig, затем ["rust", "go", "zig"] • b) Ошибка компиляции: data уже перемещён • c) Всё выведет корректно, потому что &str копируются • d) Программа скомпилируется, но упадёт во время выполнения
💡Разбор
for item in data в Rust перемещает `data`, потому что Vec<T> по умолчанию потребляется в IntoIterator. Это значит, что после цикла data больше не принадлежит функции main.
Попытка использовать data в println! после этого приведёт к ошибке компиляции: value borrowed after move.
✅ **Правильный ответ: b) Ошибка компиляции: `data` уже перемещён**
🧠 **Вывод:** в Rust `for item in collection` по умолчанию вызывает `.into_iter()`, а не `.iter()`, и это **может забрать владение** коллекцией.
🔧 **Как избежать:**
Если нужно сохранить `data`, итерация должна быть по ссылке:
for item in &data { println!("{item}"); }
println!("{:?}", data);
Теперь `data` не перемещается, и всё работает корректно.
🦀Rust-задача: неожиданный вывод из-за владения и `for`
fn main() { let data = vec!["rust", "go", "zig"];
for item in data { println!("{item}"); }
println!("{:?}", data); }
❓Что произойдёт при компиляции и запуске?
• a) Выведет rust, go, zig, затем ["rust", "go", "zig"] • b) Ошибка компиляции: data уже перемещён • c) Всё выведет корректно, потому что &str копируются • d) Программа скомпилируется, но упадёт во время выполнения
💡Разбор
for item in data в Rust перемещает `data`, потому что Vec<T> по умолчанию потребляется в IntoIterator. Это значит, что после цикла data больше не принадлежит функции main.
Попытка использовать data в println! после этого приведёт к ошибке компиляции: value borrowed after move.
✅ **Правильный ответ: b) Ошибка компиляции: `data` уже перемещён**
🧠 **Вывод:** в Rust `for item in collection` по умолчанию вызывает `.into_iter()`, а не `.iter()`, и это **может забрать владение** коллекцией.
🔧 **Как избежать:**
Если нужно сохранить `data`, итерация должна быть по ссылке:
for item in &data { println!("{item}"); }
println!("{:?}", data);
Теперь `data` не перемещается, и всё работает корректно.
BY Rust
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
A leaked Telegram discussion by 50 so-called crypto influencers has exposed the extraordinary steps they take in order to profit on the back off unsuspecting defi investors. According to a leaked screenshot of the chat, an elaborate plan to defraud defi investors using the worthless “$Few” tokens had been hatched. $Few tokens would be airdropped to some of the influencers who in turn promoted these to unsuspecting followers on Twitter.
How to Buy Bitcoin?
Most people buy Bitcoin via exchanges, such as Coinbase. Exchanges allow you to buy, sell and hold cryptocurrency, and setting up an account is similar to opening a brokerage account—you’ll need to verify your identity and provide some kind of funding source, such as a bank account or debit card. Major exchanges include Coinbase, Kraken, and Gemini. You can also buy Bitcoin at a broker like Robinhood. Regardless of where you buy your Bitcoin, you’ll need a digital wallet in which to store it. This might be what’s called a hot wallet or a cold wallet. A hot wallet (also called an online wallet) is stored by an exchange or a provider in the cloud. Providers of online wallets include Exodus, Electrum and Mycelium. A cold wallet (or mobile wallet) is an offline device used to store Bitcoin and is not connected to the Internet. Some mobile wallet options include Trezor and Ledger.