问题标签 [rust]
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.
multithreading - 在 Rust 中的线程之间共享可变变量
编者注:此代码示例来自 Rust 1.0 之前的版本,在语法上不是有效的 Rust 1.0 代码。
是否可以在 Rust 中的多个线程之间共享一个可变变量?鉴于以下情况:
我收到此错误:
该变量只需要对生成的线程是只读的。该变量必须是可变的,因为我真正想做的是在多个线程之间共享一个 HashMap。据我所知,除非它是可变的,否则无法填充 HashMap。即使有办法做到这一点,我仍然有兴趣知道如何完成这样的事情。
谢谢!
rust - 未解决的导入:`std::num` 中没有`atan`
我正在从 Rust 教程构建示例。当我尝试编译这个例子时:
我得到了名义上的错误。我正在用rust build Test.rs
. 为什么编译器找不到std::num::atan
?
rust - 不可变字段和生命周期不匹配
鉴于此代码(也在此处):
我遇到了第 15-17 行的问题。
对于第 15 行和第 16 行,有人可以解释更改这两个变量的最佳方法是什么吗?看来我要么没有使用self
正确,要么我错过了mut
某个地方。
对于第 17 行,它给了我一个lifetime mismatch
,还说:
不匹配的类型:预期 '&Vector2' 但找到了 '&Vector2'...在 14:41 在块上定义的匿名生命周期 #1 不一定比在 14:41 在块上定义的匿名生命周期 #2 长。
有谁知道解决这两个问题的任何方法?
rust - 在 for 循环中使用拥有的指针访问枚举的内容
对于代码:
我收到以下错误:
如果我将字符串更改为 int,则它可以正常编译。
我的问题是:如何在 for 循环中访问枚举中拥有的指针的内容?我应该使用备用迭代器吗?
我使用的 Rust 版本是从 master 编译的。
testing - 对 crate 中的模块运行测试
我正在编写一个由分布在多个文件中的多个模块组成的板条箱。这些模块是相互依赖的,即一些模块使用这个 crate 中的其他模块。
是否可以在这些模块中与板条箱中的其他模块分开运行测试?如果包含对该 crate 中其他模块的引用,则运行rust test some_module.rs
不起作用。some_module.rs
运行rust test my_crate.rc
确实有效,但它从所有 crate 模块运行测试,这不是我想要的。
pointers - 奇怪的借款检查失败
我大致有以下代码:
它失败并显示以下消息:
我可以通过以下代码解决此问题:
但为什么会失败?可变指针和不可变指针的作用域是不同的,它们是不同的表达式。对我来说,这看起来像是一种错误,但我只是想确保我没有在这里遗漏任何东西。
berkeley-db - 将 Rust 与 Berkeley DB 连接
我有一个使用 Berkeley DB 作为存储后端的现有 C++ 程序。我想用 Rust 重写它。有没有办法在 Rust 中编写一个外部函数接口来使用 Berkeley DB?我找到了教程Rust Foreign Function Interface,但对于 BDB 中使用的复杂 C 结构来说,这似乎太简单了;例如,要打开一个数据库,我需要声明一个 DB 结构并调用DB->open()
. 但我不知道如何使用教程中显示的示例来做到这一点。
有人能帮忙吗?
rust - 如何捕获可变变量?
如何捕获可变变量?
我也尝试让这些函数成为方法,但后来一切都崩溃了,因为它试图将自己移动到闭包中
有我可以使用的 self 参数吗?因为 gm 本身应该在闭包中可用