Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
String 为什么申请&;对字符串返回a&;str?_String_Rust_Dereference - Fatal编程技术网

String 为什么申请&;对字符串返回a&;str?

String 为什么申请&;对字符串返回a&;str?,string,rust,dereference,String,Rust,Dereference,在此示例代码中: 到底是什么在幕后导致&s变成&str而不是&String?文档似乎表明存在一些取消引用的情况,但我认为*是用于取消引用的,而不是&?这里发生的事情被称为。这些允许使用对实现的类型的引用来代替对其他类型的引用。正如您的示例所示,&String可以在任何需要&str的地方使用,因为String实现了Deref到str这里发生的事情被称为。这些允许使用对实现的类型的引用来代替对其他类型的引用。如您的示例所示,&String可以在任何需要&str的地方使用,因为String实现了Der

在此示例代码中:


到底是什么在幕后导致
&s
变成
&str
而不是
&String
?文档似乎表明存在一些取消引用的情况,但我认为
*
是用于取消引用的,而不是
&

这里发生的事情被称为。这些允许使用对实现的类型的引用来代替对其他类型的引用。正如您的示例所示,
&String
可以在任何需要
&str
的地方使用,因为
String
实现了
Deref
str

这里发生的事情被称为。这些允许使用对实现的类型的引用来代替对其他类型的引用。如您的示例所示,
&String
可以在任何需要
&str
的地方使用,因为
String
实现了
Deref
str

请参见。第二个代码示例几乎就是您所拥有的。也许这对DerefSee有帮助。第二个代码示例几乎就是您所拥有的。也许这对Deref有帮助
fn takes_str(s: &str) { }

let s = String::from("Hello");

takes_str(&s);