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

问题描述 投票:0回答:1

我正在通过一个箱子

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 只有一个字段,它是借用的切片,并且该语法是否记录在某处?

rust syntax
1个回答
3
投票

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

除了将其传递给

self
的方法之外,它没有以任何方式连接到
self

© www.soinside.com 2019 - 2024. All rights reserved.