问题标签 [lifetime-scoping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
937 浏览

rust - 我什么时候需要在 Rust 中指定显式生命周期?

如果我有这两个功能

什么时候会foo返回错误并bar成为正确的函数头?我对为什么要明确声明生命周期感到困惑:

'a 读作'一生 a'。从技术上讲,每个引用都有一些与之相关的生命周期,但编译器允许您在常见情况下省略它们。

我了解生命周期是什么,但是明确指定生命周期'a 我有什么作用?作为参考,我使用Rust 书作为阅读材料

0 投票
5 回答
2430 浏览

c# - 可变寿命

当执行行超出代码块时,变量会发生什么?例如:

所以,我们声明并设置变量。当它超出代码块(第 5 行)时,变量号会发生什么?

这是另一个创建类实例的示例:

当它超出代码块(第 11 行)时,对象引用 myClient 会发生什么?

我想在这两种情况下都分配了变量,但是什么时候释放了?

0 投票
1 回答
1008 浏览

python - Python 生命周期模块错误

我试图在我的 Linux AMI 服务器上加载 Lifetimes 模块。我安装得很好,一切似乎都没有错误。

但是,当我去使用它时,我得到了以下错误。(试图做一些我认为可以解决的事情,但没有任何效果)

0 投票
2 回答
67 浏览

c++ - C++ 通过作用域销毁变量

在 C++ 中创建具有空范围(如下所示)的“临时”对象以确保它们立即被销毁是安全的还是可接受的做法?

0 投票
1 回答
79 浏览

c++ - 参数的销毁是否在返回之前发生?

好的,我有以下事件序列:

  1. 我构造了一个右值对象
  2. 我将一个迭代器传递给那个右值对象到一个函数中作为参数
  3. 该函数在此迭代器上运行
  4. 该函数按值返回此迭代器
  5. 我取消引用迭代器

我不知道是什么原因导致清理 r 值对象,是该行的终止吗?

好的,现在具体来说,我试图为这个问题想出一个更好的答案:C++ 中的字符串乘法我有代码:

所以我想知道什么时候应该销毁string内部构造的。generate_n顺便说一句,这似乎在 gcc 5.1 上运行良好:http: //ideone.com/Y8rDs5但我可能只是得到未定义的行为。Visual Studio 2015 上的代码段错误这一事实暗示了这一点。

0 投票
2 回答
71 浏览

rust - 简单资源分配器结构的生命周期错误

我正在尝试制作一个简单的分配器,从固定的缓冲区池中分配和释放缓冲区。

错误是

当我简单地删除cell0并且仅对cell1我的单元池可用时,会发生以下错误:

有没有人建议如何修复此代码以使其编译并在免费列表中可能有 2 个以上的项目?

我想填充对数组的引用列表,然后能够弹出它们 - 使用它们一段时间并将使用/完成的值放回空闲列表中。

这里的动机是构建一个使用该#![nostd]指令的库,因此它需要一个分配器接口才能正常运行。

0 投票
1 回答
169 浏览

rust - 从 rust-xcb 调用 `roots` 时出现“寿命不够长”错误

我正在尝试在 xcb 创建的窗口中使用 Cairo 表面。我有一个 C 示例以及 Rust XCB 和 Cairo 绑定。我快完成了,但这个错误对我来说仍然是个谜。

我的代码:

我称之为:

并获得这样的错误:

screendepth变量相同的错误。

有人可以解释 - 为什么“setup活得不够长”?据我了解,setup在函数选项时会被破坏return,并且可以在函数中不受限制地使用。

get_setup()代码:

0 投票
2 回答
69 浏览

rust - 对多个参数使用相同的生命周期有什么好处?

与使用两个生命周期相比,上述代码有什么优势?是否存在上述代码可以工作但 2 个生命周期不能工作的情况?

0 投票
1 回答
90 浏览

closures - Boxed Fn 仅在测试时才需要生命周期'static?

使用rustc 1.10.0,我正在尝试编写一些绕过盒装闭包的代码——最终目标是程序化地生成分形动画。现在我有一些这样的函数签名:

在二进制文件中一次为一个图像运行此代码可以正常工作:

但是,我想确保我的串行和并行图像生成都产生相同的结果,所以我编写了以下测试函数:

这拒绝编译,我就是想不通。它给出的错误如下:

我真的不知道那里发生了什么。我不知道为什么我需要手动标记SendSync插入插值函数的盒装返回类型。尽管如此,我只是不断添加编译器建议的标记,直到一切正常。

真正的问题是,虽然我想我有一个很好的猜测,为什么你不能只标记一个盒装的闭包'static,但我不知道在这种情况下需要什么生命周期或如何修复它。

我确实猜想问题可能是我试图一次从两个读取借阅中引用闭包(这应该没问题,但我很绝望);无论如何,包裹interpolate在 an 中Rc会给出完全相同的错误,所以这不是问题。

0 投票
1 回答
602 浏览

c# - 是否可以在 Autofac LifetimeScope 创建后添加注册?

我知道您可以在创建LifetimeScope 添加注册,如下所示:

创建后是否可以添加注册LifetimeScopeusing(例如在块内添加注册)