定义
无法理解时, 不要深究, 看完后再读一遍此定义即可.
假设1 C是一个泛型类或接口, T是类型参数.
假设2 类型Dog是Animal的子类型...._long_to_short: &'short T = b; // 成功 子类型的值可以转型为父类型
}
泛型参数'long: 'short定义'long是'short的子类型,
意味着'long是一个较长的生存期..., 它能完全覆盖'short这个较短的生存期,
那么任何一个需要&'short i32的地方(转型,赋值,参数)&'long i32都可以满足的,
所以&'long i32是&'short i32的子类型...(I_STATIC, i_1);
}
以上代码说明:
许多类型和生存期参数是 rustc 自动推导的, 我们无法明确的写出
自动推导出的生存期符合子类型关系
静态生存期&'static T是任意生存期&...struct, enum 和 union 根据其包含域类型的可变性确定, 域类型有多种可变性时, 组合类型为不变.