Rust编程进阶:015、方法中的生命周期

巧了我就是萌 提交于 2021-01-05 23:34:17
struct StuA<'a> {
    name: &'a str,
}

impl<'b> StuA<'b> {
    fn do_something(&self) -> i32 {
        3
    }

    fn do_something2(&self, s: &str) -> &str {
    // fn do_something2<'b>(&'b self, s: &str) -> &'b str{
        self.name
    }

    fn do_something3<'a>(&self, s: &'a str) -> &'a str {
        s
    }
}

fn main() {
    let s = String::from("hello");
    let a = StuA { name: &s };
    println!("{}", a.do_something());
    let s2 = String::from("hello");
    println!("{}", a.do_something2(&s2));

    println!("{}", a.do_something3(&s2));
    println!("Hello, world!");
}

本节全部源代码:
https://github.com/anonymousGiga/learn_rust/blob/master/learn_life4/src/main.rs

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!