আসুন নিম্নলিখিত উদাহরণগুলি বিবেচনা করুন:
main.rs
use futures::executor::block_on;
use futures::future::{FutureExt, TryFutureExt};
async fn fut1() -> Result<String, u32> {
Ok("ok".to_string())
}
fn main() {
println!("Hello, world!");
match block_on(fut1().and_then(|x| async move { Ok(format!("{} is \"ok\"", x)) })) {
Ok(s) => println!("{}", s),
Err(u) => println!("{}", u)
};
}
Cargo.toml
[dependencies]
futures = "^0.3"
আমি |x| async move {}পরিবর্তে অভিব্যক্তি সম্পর্কে জিজ্ঞাসা করছি async move |x| {}। পরবর্তীটি আরও সুস্পষ্ট, তবে এটি সংকলন ত্রুটিতে চলে:
error[E0658]: async closures are unstable
তারপর আমি আশ্চর্য, এর মধ্যে পার্থক্য কি async move || {}এবং || async move {}। তারা উভয়ই moveকীওয়ার্ডটি ব্যবহারের জন্য ক্লোজার বলে মনে হচ্ছে ।
$ rustc --version
rustc 1.39.0 (4560ea788 2019-11-04)