rust - 为什么 len() 和 is_empty() 没有在特征中定义?

标签 rust traits

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

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

最佳答案

Was it deemed useless?



我猜这就是原因。

知道某物是空的或长度为 15 的情况下,你能做什么?几乎什么都没有,除非你也有办法访问集合的元素。统一集合的特征是 Iterator .特别是一个迭代器可以告诉你它的底层集合有多少元素,但它还可以做更多的事情。

另请注意,如果您需要 Empty trait,您可以为所有标准集合创建一个并实现它,这与大多数语言中的接口(interface)不同。这就是特质的力量。这也意味着标准库不需要为每个用例提供小的实用程序特征,它们可以由库提供!

关于rust - 为什么 len() 和 is_empty() 没有在特征中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60449514/

相关文章:

traits - 我可以静态借用对特征对象的引用吗?

generics - 为什么在通用使用时调用特征方法不会调用同名的固有方法?

php - 抽象特征方法在 PHP 中不允许是静态的?

function - 缺少顶级功能的实现

asynchronous - 克隆字符串以在Rust中进行异步移动关闭

rust - Result<usize, std::io::error::Error> 在 Rust 1.0.0 中没有实现 expect

ssh - 将 SSH 命令连接到标准输出

rust - 有没有办法让 expect() 输出更用户友好的消息?

json - 如何在 Rust 中使用 reqwest 反序列化任意 json 结构?

groovy - Groovy 特征的菱形继承(钻石问题)