我正在通过一个箱子
hifijson
来解析JSON源代码,我偶然发现了这个:
fn skip_until(&mut self, stop: impl FnMut(u8) -> bool) {
use crate::Write;
self.write_until(&mut &[][..], stop) // <-
}
您可以在此处查看完整的实施。
我对上面标有注释
&[][..]
的行的语法<-
不太确定。虽然我认为它在这里将 bytes
字段作为 struct
SliceLexer
的可变切片传递,但我以前从未在 Rust 文档或其他地方的任何地方见过这种语法。
有人可以解释它是如何工作的,并确认它是否只适用于这里,因为 struct 只有一个字段,它是借用的切片,并且该语法是否记录在某处?
[]
是 0 个元素的数组文字,[..]
使用范围进行索引,&
接受引用,因此 &[][..]
创建一个空切片引用,通常称为切片。
除了将其传递给
self
的方法之外,它没有以任何方式连接到 self
。