在TypeScript中,您可以使用以下内容映射和解构来自接口的部分数据集
interface Person {
name: string;
address: string;
}
function getName({ name }: Person): Partial<Person> {
return ({ name });
}
const people: Person[] = [
{
name: "Sally",
address: "1234 E Test St."
},
// ...
];
const names = people.map(getName);
// => [{ "name": "Sally" }, ...]
我只是不理解,但我没有找到关于如何在Rust中执行此TypeScript操作的1:1等价物 . 在Rust中可以执行这种类型的结构化吗?也许使用 map
或 filter_map
?
1 回答
Rust也通过pattern matching进行了解构:
但是,您通常不会看到人们在函数签名中进行这种类型的解构 . 它在自动生成的文档中公开了更多的实现 . 在函数内部立即看到它更常见:
并且人们不会经常在
let
变量中使用解构,除非他们提取了许多值 . 在这种情况下,直接使用该字段更短:这个特殊的功能并不是非常有用,所以我通常也会把它视为一个闭包:
原始TypeScript中有很多东西不能直接转换为Rust:
Partial
类型的概念 .Rust矢量本身没有实现
map
和朋友 - 这些操作属于iterators . 这些是懒惰的,这使得Rust比相应的JS更有效 .有多种字符串类型 .
如果你想要一个匿名的字段集合,你通常会使用一个元组:
没有命名字段的一次性结构的概念 .