rust - 为什么 len() 和 is_empty() 没有在特征中定义?
问题描述
Rust 中的大多数模式都由特征(Iterator
, From
,Borrow
等)捕获。
len
为什么像/一样普遍的模式is_empty
在标准库中没有相关特征?这会导致我没有预见到的问题吗?它被认为是无用的吗?还是只是没有人想到它(这似乎不太可能)?
解决方案
它被认为是无用的吗?
我猜这就是原因。
知道某物是空的或长度为 15 的情况下,你能做什么?几乎什么都没有,除非你也有办法访问集合的元素。统一集合的特征是Iterator
. 特别是迭代器可以告诉你它的底层集合有多少元素,但它还可以做更多的事情。
另请注意,如果您需要一个Empty
trait,您可以为所有标准集合创建一个并实现它,这与大多数语言中的接口不同。这就是特质的力量。这也意味着标准库不需要为每个用例提供小的实用程序特征,它们可以由库提供!
推荐阅读
- python - 如何为在 C++ 应用程序中使用嵌入 python 创建的新线程状态获取 GIL
- python - 每月向同一客户发送带有文件的 Outlook 电子邮件
- postgresql - Postgresql 逻辑复制不适用于某些表
- php - 回声 json_encode($data); 控制器中的 PHP CodeIgniter 错误
- logging - 一台服务器下的多个部署的单独日志文件 - weblogic
- java - 出现此错误:无法解析配置“:classpath”的所有工件。> 无法解析 org.jetbrains.kotlin:kotlin-reflect:1.3.72
- azure-data-factory - 数据流错误 - 无法转换数据源
- mysql - 在 CASE 中具有多个条件的存储过程 -> 未按预期工作 [MYSQL]
- network-programming - 卡尔达诺连接
- mysql - 仅使用 mysql 数据库中的列名获取表名和详细信息