7 个版本 (4 个稳定版)
1.2.1 | 2020年4月19日 |
---|---|
1.2.0 | 2020年4月18日 |
0.1.1 | 2019年6月6日 |
0.0.1 | 2019年6月6日 |
1697 在 Rust 模式 中
每月下载 1,975 次
用于 2 crates
6KB
Shadow Clone
一个宏,用于将变量克隆到当前作用域,同时覆盖旧变量。
帮助
如果您在使用 shadow-clone
时遇到任何问题或需要帮助,请通过电子邮件发送到 [email protected]。
如何使用
添加
shadow-clone = "1"
到您的 cargo.toml
中的 [dependencies]
部分,并在主文件中添加
use shadow_clone::shadow_clone;
示例
let s = "foo".to_string();
let c = move |x: i32| format!("{}{}", s, x);
let bar = s;
这将无法编译,因为 s
已经移动到闭包中。
这个问题可以通过这个宏来解决。
use shadow_clone::shadow_clone;
let s = "foo".to_string();
{
shadow_clone!(s);
let c = move |x: i32| format!("{}{}", s, x);
}
let bar = s;
它展开为:
use shadow_clone::shadow_clone;
let s = "foo".to_string();
{
let s = s.clone();
let c = move |x: i32| format!("{}{}", s, x);
}
let bar = s;
您也可以通过逗号分隔克隆多个变量: shadow_clone!(foo, bar);
。
您也可以通过前缀 mut
将克隆的变量绑定为可变: shadow_clone!(mut foo);
。
文档
警告
如果您是从 GitHub 查看此内容,则这是一个只读副本。请在此处为 GitLab 复制 做出贡献。