1 rust
我一直在研究一些关于区块链的教程,其中 Rust 是首选语言。
然后,在某个时候,我发现了两个数组之间的比较,使用了我不知道的符号。
我知道 '..' 是 Rust 中的范围操作。它会直接比较两个完整数组的大小和内容吗?
if somearray[..] == anotherarray[..] {
return Ok(true);
}
Run Code Online (Sandbox Code Playgroud)
我在网上找不到任何直接参考,所以我决定在这里询问。
感谢您澄清它。
array[..]正在使用 索引数组RangeFull。它返回整个数组,但作为切片而不是数组。这与调用 具有(几乎)相同的效果as_slice()。
至于为什么,在 Rust 1.47 之前,数组只能比较最多 32 个元素。不仅如此,您还应该将它们转换为切片。Commit eff62069ad602090e8d27b83cffd9e77479ed4be解除了此限制,但此代码可能是在此之前编写的,并且数组太大,==如果不先转换为切片,则无法使用。