#闭包 #更新 #获取

无std upget

一个非常简单的trait,用于匹配值"update"和"get"。

2个版本

0.1.1 2023年7月30日
0.1.0 2023年4月3日

#2471 in Rust模式

MIT/Apache

7KB

upget

一个非常简单的trait,用于匹配值"update"和"get"。

此crate的作者英语水平不佳。
如果文档难以阅读,请见谅。

Upget trait只有一个upget方法,该方法仅使用闭包更新self值,然后检索它。就是这样,但它允许你重构常见的代码模式。

目标代码

例如,以下代码可以重构...

fn clone_with_sort(vec: &Vec<String>) -> Vec<String> {
    let mut result = vec.clone();
    result.sort();
    result
}

如下。

fn clone_with_sort(vec: &Vec<String>) -> Vec<String> {
    vec.clone().upget(|x| x.sort())
}

这种重构有以下优点。

  • 简化代码。
  • 消除中间变量。
  • 消除mut指定。

lib.rs:

Upget的提供者。

此crate的作者英语水平不佳。
如果文档难以阅读,请见谅。

可以使用以下方式使用Upget trait进行重构。

重构前。

fn clone_with_sort(vec: &Vec<String>) -> Vec<String> {
let mut result = vec.clone();
result.sort();
result
}

重构后。

fn clone_with_sort(vec: &Vec<String>) -> Vec<String> {
vec.clone().upget(|x| x.sort())
}

无运行时依赖