如何从 as_slice() 更改为 [] 语法?

How do I change from as_slice() to [] syntax?

针对较新的 nightlies 重新编译一些较旧的代码,我收到有关使用 as_slice() 语法以支持 var[] 语法的警告。

然而,当我将 as_slice() 替换为 [] 时,如图 in the RFC 所示,我收到编译器错误消息:

 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] 而不是 as_slice/slice/slice_from/slice_to.