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

标签 syntax rust slice

针对较新的 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.

关于syntax - 如何从 as_slice() 更改为 [] 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28554366/

相关文章:

php - MySQL SHOW COLUMNS 意外行为

generics - 为什么我的 FooGen 类型不满足 RefGen 特征界限?

python - 带切片的范围说明

rust - 切片中的不可变引用是如何更新的?为什么它不改变引用变量的值?

如果字符串重复,Javascript 替换子字符串将无法正常工作

python - Tensorflow - 按批处理索引对占位符进行分组

php mysql 检查现有语法

javascript - 缩短方法。语法更好的实践

python - 使 python 3 异常向后兼容

redis - 调用使用redis-rs创建redis连接的函数时如何防止生命周期问题