< 返回版块

[FAQ] 为什么要有生命周期参数

CrLF0710 发表于

标签:耐心的 浏览:210 评论:2

生命周期参数用来表达你知道的编译器不知道的知识:生命周期的嵌套关系,于是也会限定你能做的事情。你也可以把它们看作你向编译器证明你的程序正确性的方式。大部分时候都能自动推导,少部分要自己手工指定。

举例:虽然通用的这个函数是可能有危险的,但是因为我的输入参数满足这样这样的生命周期嵌套关系,所以在这个情况下没问题。

再重复一次:生命周期参数只用来证明有效性,不对生成的代码施加影响。

评论区

Mike Tang 2018-02-12T08:05:44.894148

我理解的,是引入一种相对生命期。我知道B的生命周期,我如何扩大A的生命周期,就用一种形式,把A和B关联起来,这样,就告诉编译器,A不要忙释放,给我留着,和B一起释放。

这是方法论中一个普遍的现象。在宏观世界,你往往无法准确量化一个东西的值。这个时候,你仍然可以通过观察,我知道B的值了,如果A与B差不多高,那么我就知道A也差不多是这个值。

B跑得快,A跑得慢,我如何让A跟B跑得一样快。把A和B绑起来,A就跑得和B一样快了。

这种思维,是研究客观世界的有效方法。就是把绝对问题转化为一个相对问题,参考物的值是比较清晰的,那么我就有研究这个问题的切入点了。

话说,傅里叶变换也是这样的。

Daogang Tang 2018-02-12T10:29:09.011970

不求同年同月同日生,但求同年同月同日死

1 共 2 评论, 共 1 页