Syntax 如何从as_slice()更改为[]语法?
针对较新的nightlies重新编译一些较旧的代码,我收到了关于使用Syntax 如何从as_slice()更改为[]语法?,syntax,rust,slice,Syntax,Rust,Slice,针对较新的nightlies重新编译一些较旧的代码,我收到了关于使用as_slice()语法支持var[]语法的警告 但是,当我将替换为_slice()为[]时,会出现一个编译器错误,如图所示: expected `&str`, found `str` (expected &-ptr, found str) [E0308] src/main.rs:38 print_usage(program[], opts); 和我原来的相比 print_us
as_slice()
语法支持var[]
语法的警告
但是,当我将替换为_slice()
为[]
时,会出现一个编译器错误,如图所示:
expected `&str`,
found `str`
(expected &-ptr,
found str) [E0308]
src/main.rs:38 print_usage(program[], opts);
和我原来的相比
print_usage(program.as_slice(), opts);
是将
as_slice()
语法完全消失了,还是将其编写为vec[]
?当我按照编译器的要求去做时,我遇到的错误是怎么处理的?你几乎成功了:
print_usage(&program[], opts);
因此,是的,现在我们应该使用方括号语法作为
&[start..end]
或&mut[start..end]
而不是作为
/切片
/切片
从/到
,我认为由于新的解除限制强制规则,即使是&program
(没有括号)也足够了(如果程序
是一个字符串
或其他带有Deref
的东西)。作为参考,新语法称为,这是允许它的特性。