小编Jac*_*ien的帖子

Rust:为什么当“self:&Self”时“self”不是引用?

根据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)

reference self rust

1
推荐指数
1
解决办法
746
查看次数

标签 统计

reference ×1

rust ×1

self ×1