【发布时间】:2023-02-17 10:52:46
【问题描述】:
我正在尝试使用 gtk-rs 在 Rust 中构建一个应用程序。当用户创建一个新项目时,需要以某种方式存储项目根目录的路径,以便所有应用程序都可以访问它。 我试图解决的事情:
- 创建可变静态字符串(不安全,因此可能不是可行的解决方案)
- 将变量存储到一个文件中,该文件由于显而易见的原因而缓慢且愚蠢。虽然有效...
- 按照This 帖子中的建议使用
lazy_static!。但它也表示这通常不是首选方式。所以我尝试了下一件事。 - 创建一个
mut project_root: &mut String并将其传递给任何需要它的函数。现在的问题是,当我需要调用new_proj_menu_item.connect_activate(move |_| new_project_listener::add_listener(&file_tree_view, project_root));为菜单项设置侦听器时,编译器告诉我:“project_root具有匿名生命周期'_但它需要满足'staticlifetime requirement E0759 ... is captured here... 注意:...并且需要在此处与'static一样长“我不完全理解,但似乎与我尝试的第一件事有关(project_root 是字符串)。
现在我的问题是:我将如何存储这样的变量,以便整个项目都可以访问它?是否有我不知道的 GTK 内部方式?
【问题讨论】: