神 一生有你
2021-08-15
默认借用检查只分析了当前作用域,当你的引用超出范围就会报错,这时就需要你来告诉借用检查器,也就是使用生命周期显示标注是没有问题,具体情况如何标注,就是语法问题对应几种场景,也就是老师讲的几种标注情况和语法,但归根到底,生命周期是解决引用无效的问题,而借用检查器目前实现很简单,只简单判断引用本地作用范围,跨函数等其它情况就只能靠写代码的人了,如果你发现警告了,用生命周期参数标注告诉它,按这样检查就不超范围了,就解决了,还有一个根本原则,输入:(大于)输出。目前程序员搏斗不了编译器,但比借用检查器还是强很多的(人工智能自动标注生命周期以后还是有希望的)
4
Geek_f969c9
2023-01-23
来自陕西
在开头的例子中,DoSomething<&'a usize>已经标注了'a大于函数foo,所以当调用b.do_sth(&s)时&'b s无法协变为&'a usize,因为'b生命小于'a;