生命周期参数用来表达你知道的编译器不知道的知识:生命周期的嵌套关系,于是也会限定你能做的事情。你也可以把它们看作你向编译器证明你的程序正确性的方式。大部分时候都能自动推导,少部分要自己手工指定。
举例:虽然通用的这个函数是可能有危险的,但是因为我的输入参数满足这样这样的生命周期嵌套关系,所以在这个情况下没问题。
再重复一次:生命周期参数只用来证明有效性,不对生成的代码施加影响。
1
共 2 条评论, 1 页
生命周期参数用来表达你知道的编译器不知道的知识:生命周期的嵌套关系,于是也会限定你能做的事情。你也可以把它们看作你向编译器证明你的程序正确性的方式。大部分时候都能自动推导,少部分要自己手工指定。
举例:虽然通用的这个函数是可能有危险的,但是因为我的输入参数满足这样这样的生命周期嵌套关系,所以在这个情况下没问题。
再重复一次:生命周期参数只用来证明有效性,不对生成的代码施加影响。
评论区
写评论不求同年同月同日生,但求同年同月同日死
我理解的,是引入一种相对生命期。我知道B的生命周期,我如何扩大A的生命周期,就用一种形式,把A和B关联起来,这样,就告诉编译器,A不要忙释放,给我留着,和B一起释放。
这是方法论中一个普遍的现象。在宏观世界,你往往无法准确量化一个东西的值。这个时候,你仍然可以通过观察,我知道B的值了,如果A与B差不多高,那么我就知道A也差不多是这个值。
B跑得快,A跑得慢,我如何让A跟B跑得一样快。把A和B绑起来,A就跑得和B一样快了。
这种思维,是研究客观世界的有效方法。就是把绝对问题转化为一个相对问题,参考物的值是比较清晰的,那么我就有研究这个问题的切入点了。
话说,傅里叶变换也是这样的。