418得票5回答
C++函数中静态变量的生命周期是多久?

如果在函数的作用域中声明一个变量为static,它只会被初始化一次,并保留其值直到函数调用。那么它的生命周期是什么时候?它的构造函数和析构函数何时被调用?void foo() { static string plonk = "When will I die?"; }

417得票4回答
为什么我不能在同一个结构体中存储一个值和对该值的引用?

我有一个值,我想在我的自定义类型中存储该值以及内部某个东西的引用:struct Thing { count: u32, } struct Combined<'a>(Thing, &'a u32); fn make_combined<'a>() -&g...

278得票11回答
为什么在 Rust 中需要显式生命周期?

我正在阅读 Rust 书籍的 生命周期章节 , 我看到了一个命名/显式生命周期的例子: struct Foo<'a> { x: &'a i32, } fn main() { let x; // -+ x goes i...

149得票1回答
非词法生命周期是什么?

Rust有一个与非词汇生命周期相关的RFC,该已被批准长期实施于该语言中。最近, Rust对此功能的支持得到了很大改善,并被认为是完整的。 我的问题是:什么是非词汇生命周期?

130得票5回答
有没有办法返回在函数中创建的变量的引用?

我想编写一个程序,它将以两个步骤编写文件。在运行程序之前,该文件可能不存在。文件名是固定的。 问题在于 OpenOptions.new().write() 可能会失败。在这种情况下,我想调用自定义函数 trycreate()。这个想法是创建文件而不是打开它并返回一个句柄。由于文件名是固定的,...

118得票7回答
std::string::c_str() 的结果的生命周期是什么?

在我的一个程序中,我必须与一些使用 const char* 的旧代码进行接口。 假设我有一个看起来像这样的结构:struct Foo { const char* server; const char* name; }; 我的高级应用程序只处理 std::string,因此我想使用 st...

101得票9回答
C中字符串字面值的“寿命”

以下函数返回的指针不会变得无法访问吗?char *foo(int rc) { switch (rc) { case 1: return("one"); case 2: return("two"...

93得票2回答
如何为结构体引用实现Add trait?

我创建了一个由两个元素组成的Vector结构体,并且想要重载+运算符。 我让所有的函数和方法都采用引用而不是值,同时希望+运算符也能以同样的方式工作。 impl Add for Vector { fn add(&self, other: &Vector) ->...

78得票4回答
临时函数参数的生命周期是多久?

在将一个新的MyClass实例作为函数的参数时,像这样创建一个新的实例: class MyClass { MyClass(int a); }; myFunction(MyClass(42)); 标准是否对析构函数的时机做出任何保证? 具体来说,我能否假设它会在调用myFu...

74得票1回答
Rust中的生命周期

偶尔我发现自己想编写可以以两种方式之一调用的函数:// With a string literal: let lines = read_file_lines("data.txt"); // With a string pointer: let file_name = ~"data.txt";...