繁体   English   中英

为什么Rust类型中的所有索引都是usize?

[英]Why are all indexes in Rust of type usize?

Rust的std::ops::Index<T> 支持Tusize 这背后的原因是什么?

此外,当您尝试使用其他任何东西时,没有建议“尝试使用usize”,只是“trait [&'static str]: core::ops::Index<u8> not satisfied”错误。 这可能是因为他们计划支持更多类型的T ,但由于某种原因推迟这样做?

Rust的std::ops::Index<T>仅支持Tusize

事实并非如此。 例如, HashMap接受键类型可以借用的任何类型(因此可以使用&str索引HashMap<String, _> )。

切片只允许您使用usize对它们进行usize ,所有容器类型在内存中假装为或实际上都是线性的。 这是因为usize是用于索引它们的正确类型。 任何其他类型将无法访问容器的完整潜在范围,或者将允许不可能存在的索引。

人们过去曾经问过如何添加较小的类型来进行切片索引,但这种方法会向后兼容,因此不会很快发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM