Rust 中 `&[][..]` 是什么意思?

cod*_*nic 2 syntax rust

我正在通过一个箱子hifijson来解析 JSON 源代码,我偶然发现了这一点:

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

您可以在此处查看完整的实施。

&[][..]我对上面标有注释的在线语法不太确定<-。虽然我认为它是将bytes字段作为struct SliceLexer此处的可变切片传递,但我之前从未在 Rust 文档或其他地方的任何地方见过这种语法。

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

caf*_*e25 5

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

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