Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 错误';无法移出取消引用';尝试从vector匹配字符串时_Rust - Fatal编程技术网

Rust 错误';无法移出取消引用';尝试从vector匹配字符串时

Rust 错误';无法移出取消引用';尝试从vector匹配字符串时,rust,Rust,我是个新手,尝试编写一个命令行实用程序来学习 我得到了他们的名单,并试图匹配他们 let args = os::args() //some more code match args[1].into_ascii_lower().as_slice() { "?" | "help" => { //show help }, "add" => { //do other stuff }, _ => { //do default stuff } } 这导致了这个错误

我是个新手,尝试编写一个命令行实用程序来学习

我得到了他们的名单,并试图匹配他们

let args = os::args()
//some more code
match args[1].into_ascii_lower().as_slice() {
    "?" | "help" => { //show help },
    "add" => { //do other stuff },
    _ => { //do default stuff }
}
这导致了这个错误

cannot move out of dereference (dereference is implicit, due to indexing)
match args[1].into_ascii_lower().as_slice() {
      ^~~~~~~
我不知道这意味着什么,但我没有完全获得搜索结果,但是将
args[1]
更改为
args.get(1)
会给我带来另一个错误

error: cannot move out of dereference of `&`-pointer
match args.get(1).into_ascii_lower().as_slice() {
      ^~~~~~~~~~~

发生什么事了

正如您在文档中所看到的,
into\u ascii\u lower()
的类型是():

它直接采用
self
,而不是作为参考。这意味着它实际使用字符串并返回另一个字符串

因此,当您将
args[1]转换为\u ascii\u lower()
时,您尝试直接使用
args
的一个元素,这是禁止的。您可能希望复制此字符串,并在此副本上调用
到\u ascii\u lower()
,如下所示:

match args[1].clone().into_ascii_lower().as_slice() {
    /* ... */
}

是的,就是这样。非常感谢您的快速回复。这个错误消息把我吓跑了,但我想它现在有意义了。再次感谢。
match args[1].clone().into_ascii_lower().as_slice() {
    /* ... */
}