gpt4 book ai didi

rust - 类型具有静态生命周期意味着什么?

转载 作者:行者123 更新时间:2023-12-03 22:59:42 25 4
gpt4 key购买 nike

我理解借用、特征或结构具有生命周期意味着什么,但对我来说为什么一个类型会有生命周期是没有意义的。我对类型的理解是它们是在编译时使用的抽象,它们根本不需要存在于二进制文件中。例如,具有两个 int、一个由两个 int 组成的元组和一个由两个 int 组成的固定大小数组的结构在编译时都应该映射到内存中相同的值排列,并且代码将使用字节偏移量来找到这两个值(value)观。如果我是正确的,生命周期的概念根本不应该适用于类型,因此以下两个结构将是等效的:

pub struct Foo<T> {
foo: T
}

pub struct Bar<T: 'static> {
bar: T
}
除了等效之外,语法根本不存在。我一定是误解了一些东西,广泛的谷歌搜索并没有帮助。类型生命周期的目的是什么,应该在什么时候使用它们?

最佳答案

T生命周期可短于 'static .例如,T可能是一些 &'a str (对于一些 'a ),所以 Foo<T>变成 Foo<&'a str>并因此绑定(bind)到 'a , 可能短于 'static .
第一个定义接受任何 T并将在其生命周期内绑定(bind)到 T .第二个定义说 T不得包含短于 'static 的生命周期( T 可以是 &'static strString 或任何其他 'static )。

关于rust - 类型具有静态生命周期意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66936290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com