「Rust笔记」Rust中的生命周期之协变

前言

生命周期代表资源的可用时期。显式生命周期标记是泛型参数的一种,但是有协变的概念。长生命周期作为短生命周期的子类型

生命周期

声明一个变量,其生命周期开始,变量离开作用域,其生命周期结束。

生命周期标记

生命周期标记是一种泛型参数,标记的类型:

  • 复合类型(结构体)
  • 函数
  • 枚举类型

仅当与引用(借用)相关联时。多数情况下生命周期标记可以由编译器为我们推导并标注。一些情况需要程序员显式写出生命周期标记。在函数中,需要显式写出生命周期时,一般是在需要返回参数相关的引用时。(返回堆分配内存时,直接返回Vec或Box

struct Name<'a, 'b> {
    first: &'a String,
    last: &'b String,
}

在上述Struct Name的声明中,first和last的生命周期都不得短于Struct的生命周期。注意此处是不得短于,因为若内部值的生命周期更短,则出现无效引用。

此时生命周期标记代表什

你可能感兴趣的:(rust)