根据Rust Lang 编程书籍,我们知道:
&self 实际上是 self 的缩写:&Self
但是,从下面的示例( )中,根据错误消息,fn get_name我们编写的self: &Self, but不是引用而是对象本身。self为什么在这种情况下没有self参考?那么其中的&符号是做什么用的&Self呢?
示例:一个简单的结构体,其方法返回一个人的名字
struct Person {
name: String
}
impl Person {
fn new(name: &str) -> Person {
Person {
name: name.to_string()
}
}
fn get_name(self: &Self) -> &String {
self.name // Error: expected `&std::string::String`, found struct `std::string::String`
}
}
Run Code Online (Sandbox Code Playgroud)