- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力了解 Rust 的生命周期(因为官方指南并没有很好地解释它们)。
rust lifetimes 是仅指引用,还是也可以指基本/原始值?
最佳答案
生命周期是值和对所述值的引用之间的链接。
为了理解这个链接,我将使用一个破损的平行线:房屋和地址。
房子是一个物理实体。它在某个时候建在一 block 土地上,会存在几十年或几百年,期间可能会多次翻新,很可能在某个时候被摧毁。
一个地址是一个逻辑实体,它可能指向一个房子,或者指向其他物理实体(一 block 田地、一所学校、一个火车站、一家公司的总部,...)。
房子的lifetime比较明确:它代表了房子可以使用的时间,从 build 的那一刻到被摧毁的那一刻。这间房子可能会在这段时间进行多次翻新,曾经是一个简单的小屋可能最终会成为一个成熟的庄园,但这与我们无关;就我们的目的而言,这座房子活着经历了这些转变。只有它的创建和最终的破坏才重要……尽管当我们拆除屋顶时,如果没有人恰好在卧室里可能会更好。
现在,假设您是一名房地产经纪人。你不把你卖的房子放在你的办公室里,这是不切实际的;但是,您可以保留他们的地址!
如果没有生命周期的概念,您的客户有时会提示,因为您发送给他们的地址...是垃圾场的地址,根本不是您拍摄的那栋可爱的两层楼房子.您可能还会收到警察局的一些询问,问为什么有人拿着您办公室的小册子被发现在刚被毁的房子里,随后的诉讼可能会导致您的业务倒闭。
这显然会给您的业务带来风险,因此您应该寻求更好的解决方案。如果每个地址都可以用它所指的房子的生命周期来标记,这样你就知道不要让人们死亡(或失望)?
你可能已经在那个垃圾转储中认出了 C 手动内存管理策略;在 C 中,
房地产经纪人
开发人员要确保您的地址(指针/引用)始终指的是居住房屋。
然而,在 Rust 中,引用用特殊标记标记:'enough
;它代表所引用值的生命周期的下限。
当编译器检查您对引用的使用是否安全时,它会提出以下问题:
Is the value still alive ?
值(value)是否会在 100 年后存在并不重要,只要它的生命周期足够长“足够
供您使用。
关于rust - rust 生命周期仅指引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476772/
我正在开发一个使用多个 turtle 的滚动游戏。玩家 turtle 根据按键命令在 Y 轴上移动。当危害和好处在 X 轴上移动时,然后循环并改变 Y 轴位置。我尝试定义一个名为 colliding(
我不明白为什么他们不接受这个作为解决方案,他们说这是一个错误的答案:- #include int main(void) { int val=0; printf("Input:- \n
我正在使用基于表单的身份验证。 我有一个注销链接,如下所示: 以及对应的注销方法: public String logout() { FacesContext.getCurren
在 IIS7 应用程序池中有一个设置 Idle-time out 默认是 20 分钟,其中说: Amount of time(in minutes) a worker process will rem
我是一名优秀的程序员,十分优秀!