问题标签 [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.

0 投票
2 回答
1716 浏览

pointers - 在对其进行模式匹配时修改字段

今天第一次尝试 Rust(写一个 XML 分词器),自然不是什么都懂:

我有一个带有字段的结构,可以采用枚举值:

在 aimpl Tokenizer中,我想匹配当前状态,并在某些情况下更改它,但这总是会use of moved value出错。

H 访问和/或声明状态字段,以便我可以匹配它并在匹配分支中更改其值?


抱歉,我的意思是更改 Tokenizer 的 state 字段,而不是 state 的 String 字段!

0 投票
1 回答
415 浏览

rust - 我可以借用指向 Rust 中共享特征的指针吗?

关于借用指针(损坏)的教程中,稍作修改:

一切都很好,因为该功能会自动借用共享框。

但是对一个特征做同样的事情:

它失败了,(编译器版本 0.6)说:

错误:不匹配的类型:预期&TPoint但找到@TPoint(特征存储不同:预期&但找到@)

这是编译器中的错误吗?或者特征不允许借用指针?

如果答案是后者,那为什么呢?

0 投票
4 回答
20851 浏览

rust - Rust 中的延迟序列生成

如何创建其他语言称为惰性序列或“生成器”函数的东西?

在 Python 中,我可以使用yield以下示例(来自 Python 的文档)来懒惰地生成一个可迭代的序列,该序列不使用中间列表的内存:

我怎样才能在 Rust 中做类似的事情?

0 投票
1 回答
3414 浏览

types - 如何在 Rust 中将拥有的向量与静态向量的内容进行比较?

作为测试的一部分,我想断言一个函数返回一个具有正确内容的向量。因此,我将预期数据作为静态变量提供。但是,我找不到将托管向量的内容与静态向量变量进行比较的正确方法。


更新:在比较静态向量之前分配对它的引用解决了这个问题,所以我最终得到了一个小宏来断言向量的相等性:

用法:assert_typed_eq([u8], my_data, expected_data);

0 投票
2 回答
15067 浏览

naming - 为什么叫“锈”?

为什么 Rust 编程语言被称为“Rust”?

有没有关于谁命名它的信息,为什么?(我很难提出积极的联想)。

0 投票
1 回答
16962 浏览

performance - Rust 的 Option 类型的开销是多少?

在 Rust 中,引用永远不能为 null,因此如果您确实需要 null,例如链表,请使用以下Option类型:

与简单的指针相比,在内存分配和取消引用的步骤方面涉及多少开销?编译器/运行时是否有一些“魔法”可以Option免费使用,或者比Option使用相同结构在非核心库中自行实现enum或将指针包装在向量中的成本更低?

0 投票
1 回答
922 浏览

multidimensional-array - 锈中的多维向量,段错误?

在 C# 中,我可以做这样的事情

然后使用类似的东西访问任何 Tile 元素Location[2, 40, 20]

我试图在 Rust 中制作类似类型的结构,但我发现语法有点奇怪。我确实想出了这个,但是它出现了大向量大小的段错误(用完了堆栈?):

我做错了吗?它运行得非常缓慢,并且大尺寸出现了段错误。也许有更好的方法来存储瓷砖的三维空间(层、宽度、高度)?

编辑:这是在我什至尝试使这些 Tiles 可变之前

0 投票
4 回答
2286 浏览

rust - 对向量的借用引用的生命周期与其包含的借用指针之间有什么关系?

编者注:此代码示例来自 Rust 1.0 之前的版本,在语法上不是有效的 Rust 1.0 代码。此代码的更新版本会产生不同的错误,但答案仍然包含有价值的信息。

我在 Rust 0.6 中尝试了这段代码:

我认为这种类型签名的意思是:“test 需要一个借用的指针,其生命周期为 'r,指向一个借用的指向字符串的指针向量,并返回一个借用的指向字符串的指针,也具有生命周期 'r。但编译器说:

这似乎意味着向量中的指针可能不会像(只读)向量本身一样长。这可能吗?

我需要做一些额外的注释来告诉编译器这没问题吗?

同样,拥有指针的向量呢?例如

同样,只要我借用了整个列表,我希望能够借用指向向量元素的指针。

对于上下文,我最初的问题是尝试使用拥有的指针列表扩展借用点列表:

计划是:创建一个包含所有借用指针的扩展列表,使用它,然后释放扩展列表,然后释放拥有指针的原始列表,包括包含的字符串。

0 投票
1 回答
192 浏览

rust - 如何让rusti工作?

我昨天安装了 Rust 0.6。我已经阅读了教程并且很高兴能获得编码。由于安装,我没有在我的机器上看到任何关于 rusti 的提及。我需要下载源代码并自己构建吗?我在一台Windows机器上。谢谢。

编辑:我刚刚在 wiki 上找到了答案。所以现在我想问题是,有没有人为他们可以共享的 Windows 构建了 rusti 的二进制文件?

0 投票
1 回答
629 浏览

pointers - 从 Rust FFI 检索一个指向浮点数的指针

Ubuntu 13.04,锈 0.6。我正在尝试使用 Rust FFI 来操作 openblas。以下代码无法按预期工作。

编辑:我希望它打印 25,作为借来的指针。我得到了 140125321300160,这可能是浮点数的地址。