这里出现了关于生命周期的概念: 程序中每一个变量都有对应的作用域, 当超出作用域之后变量就会被自动销毁 一句话说就是一个变量在创建 到 被释放的过程, 称之为生命周期.
不过即使不了解生命周期仅仅了解引用 就可以理解悬垂指针。
解决上述代码的方法:将String返回 而不是&String
fn overhang(mut s: String) -> &String { // s.push_str("123"); // 修改String s // 返回String 的引用 }这样就没有任何问题了