Rust 中的大多数模式都是由特征(Iterator
、From
、Borrow
等)捕获的。
为什么会出现像 len
这样普遍的模式?/is_empty
在标准库中没有相关的特征?这会导致我没有预见到的问题吗?它被认为是无用的吗?还是只是没有人想到它(这似乎不太可能)?
最佳答案
Was it deemed useless?
我猜这就是原因。
知道某物是空的或长度为 15 的情况下,你能做什么?几乎什么都没有,除非你也有办法访问集合的元素。统一集合的特征是
Iterator
.特别是一个迭代器可以告诉你它的底层集合有多少元素,但它还可以做更多的事情。另请注意,如果您需要
Empty
trait,您可以为所有标准集合创建一个并实现它,这与大多数语言中的接口(interface)不同。这就是特质的力量。这也意味着标准库不需要为每个用例提供小的实用程序特征,它们可以由库提供!
关于rust - 为什么 len() 和 is_empty() 没有在特征中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60449514/