Rust编程学习 - 如何理解Rust 语言提供了所有权、默认move 语义、借用、生命周期、内部可变性注意:&*两个操作符连写跟分开写是不同的含义。以下两种写法是不同的:fn joint() 是可以直接编译通过的,而fn separate()是不能编译通过的。因 为编译器很聪明,它看到&*这两个操作连在一起的时候,会直接把&s 表达式理解为 s.deref(), 这时候p 只是s 的一个借用而已。而如果把这两个操作分开写,会先执行s 把内部的数据move 出来,再对这个临时变量取引用,这时候s 已经被移走了,生命周期已 经结束。