为什么在特征中未定义len()和is_empty()?

问题描述 投票:0回答:1

Rust中的大多数模式都是通过特征(IteratorFromBorrow等)捕获的。

[为什么在len / is_empty中如此普遍的模式在标准库中没有相关的特征?这会导致我无法预见的问题吗?它被认为没有用吗?还是只是没有人想到它(这似乎不太可能)?

rust traits
1个回答
0
投票

它被认为没有用吗?

我想这就是原因。

您知道什么东西是空的或长度为15,该怎么办?几乎没有任何东西,除非您还具有例如访问集合元素的方法。统一集合的特征是Iterator。特别是,迭代器可以告诉您其基础集合有多少个元素,但它还能执行更多操作。

还请注意,如果需要Iterator特征,则可以创建一个特征并将其用于所有标准集合,这与大多数语言的接口不同。这就是特质的力量。这也意味着标准库不需要为每个用例提供小的实用程序特征,它们可以由库提供!

© www.soinside.com 2019 - 2024. All rights reserved.