rust - `&[][..]` 在 Rust 中意味着什么?

标签 rust syntax

我正在穿过一个 crate hifijson解析 JSON 源代码,我偶然发现了这一点:

fn skip_until(&mut self, stop: impl FnMut(u8) -> bool) {
    use crate::Write;
    self.write_until(&mut &[][..], stop) // <-
}

您可以查看完整的实现 here .

我对语法有点不确定 &[][..]在标有注释的行 <-多于。虽然我认为它正在通过 bytes字段作为 struct 的可变切片SliceLexer在这里,但我以前从未在 Rust 文档或其他地方的任何地方见过这种语法。

有人可以解释一下它是如何工作的,并确认它是否只适用于这里,因为 struct 只有一个字段,该字段是借用的切片,并且该语法是否记录在某处?

最佳答案

[] 是 0 个元素的数组文字,[..] 使用范围进行索引,& 接受引用,因此 &[][..] 创建一个空切片引用,通常简称为切片。

除了将其传递给 self 的方法之外,它没有以任何方式连接到 self

关于rust - `&[][..]` 在 Rust 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77163101/

相关文章:

post - 如何使用带有 hyper 的 multipart/form-data 发布图像?

ssl - 在 Rust 中使用 async-tls 进行 tls 握手的未知发行者

rust - 模式匹配时如何避免冗余函数调用?

rust - 如何使用生命周期边界来解决 "reference must be valid for the static lifetime"

testing - Rust 禁用特定目标的所有测试

swift - 使用 AnyObject 访问 swift 字典成员

c++ - 使用 getline 读取文件时遇到问题(菜鸟)

function - 用于函数应用程序绑定(bind)的 Haskell 括号

java - 为什么调用静态方法时用括号包裹类型是非法的?

c - 如何在 c 中使用带参数的函数指针?