问题标签 [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.
pointers - 在对其进行模式匹配时修改字段
今天第一次尝试 Rust(写一个 XML 分词器),自然不是什么都懂:
我有一个带有字段的结构,可以采用枚举值:
在 aimpl Tokenizer
中,我想匹配当前状态,并在某些情况下更改它,但这总是会use of moved value
出错。
H 访问和/或声明状态字段,以便我可以匹配它并在匹配分支中更改其值?
抱歉,我的意思是更改 Tokenizer 的 state 字段,而不是 state 的 String 字段!
rust - 我可以借用指向 Rust 中共享特征的指针吗?
从关于借用指针(损坏)的教程中,稍作修改:
一切都很好,因为该功能会自动借用共享框。
但是对一个特征做同样的事情:
它失败了,(编译器版本 0.6)说:
错误:不匹配的类型:预期
&TPoint
但找到@TPoint
(特征存储不同:预期&但找到@)
这是编译器中的错误吗?或者特征不允许借用指针?
如果答案是后者,那为什么呢?
rust - Rust 中的延迟序列生成
如何创建其他语言称为惰性序列或“生成器”函数的东西?
在 Python 中,我可以使用yield
以下示例(来自 Python 的文档)来懒惰地生成一个可迭代的序列,该序列不使用中间列表的内存:
我怎样才能在 Rust 中做类似的事情?
types - 如何在 Rust 中将拥有的向量与静态向量的内容进行比较?
作为测试的一部分,我想断言一个函数返回一个具有正确内容的向量。因此,我将预期数据作为静态变量提供。但是,我找不到将托管向量的内容与静态向量变量进行比较的正确方法。
更新:在比较静态向量之前分配对它的引用解决了这个问题,所以我最终得到了一个小宏来断言向量的相等性:
用法:assert_typed_eq([u8], my_data, expected_data);
naming - 为什么叫“锈”?
为什么 Rust 编程语言被称为“Rust”?
有没有关于谁命名它的信息,为什么?(我很难提出积极的联想)。
performance - Rust 的 Option 类型的开销是多少?
在 Rust 中,引用永远不能为 null,因此如果您确实需要 null,例如链表,请使用以下Option
类型:
与简单的指针相比,在内存分配和取消引用的步骤方面涉及多少开销?编译器/运行时是否有一些“魔法”可以Option
免费使用,或者比Option
使用相同结构在非核心库中自行实现enum
或将指针包装在向量中的成本更低?
multidimensional-array - 锈中的多维向量,段错误?
在 C# 中,我可以做这样的事情
然后使用类似的东西访问任何 Tile 元素Location[2, 40, 20]
我试图在 Rust 中制作类似类型的结构,但我发现语法有点奇怪。我确实想出了这个,但是它出现了大向量大小的段错误(用完了堆栈?):
我做错了吗?它运行得非常缓慢,并且大尺寸出现了段错误。也许有更好的方法来存储瓷砖的三维空间(层、宽度、高度)?
编辑:这是在我什至尝试使这些 Tiles 可变之前
rust - 对向量的借用引用的生命周期与其包含的借用指针之间有什么关系?
编者注:此代码示例来自 Rust 1.0 之前的版本,在语法上不是有效的 Rust 1.0 代码。此代码的更新版本会产生不同的错误,但答案仍然包含有价值的信息。
我在 Rust 0.6 中尝试了这段代码:
我认为这种类型签名的意思是:“test 需要一个借用的指针,其生命周期为 'r,指向一个借用的指向字符串的指针向量,并返回一个借用的指向字符串的指针,也具有生命周期 'r。但编译器说:
这似乎意味着向量中的指针可能不会像(只读)向量本身一样长。这可能吗?
我需要做一些额外的注释来告诉编译器这没问题吗?
同样,拥有指针的向量呢?例如
同样,只要我借用了整个列表,我希望能够借用指向向量元素的指针。
对于上下文,我最初的问题是尝试使用拥有的指针列表扩展借用点列表:
计划是:创建一个包含所有借用指针的扩展列表,使用它,然后释放扩展列表,然后释放拥有指针的原始列表,包括包含的字符串。
rust - 如何让rusti工作?
我昨天安装了 Rust 0.6。我已经阅读了教程并且很高兴能获得编码。由于安装,我没有在我的机器上看到任何关于 rusti 的提及。我需要下载源代码并自己构建吗?我在一台Windows机器上。谢谢。
编辑:我刚刚在 wiki 上找到了答案。所以现在我想问题是,有没有人为他们可以共享的 Windows 构建了 rusti 的二进制文件?
pointers - 从 Rust FFI 检索一个指向浮点数的指针
Ubuntu 13.04,锈 0.6。我正在尝试使用 Rust FFI 来操作 openblas。以下代码无法按预期工作。
编辑:我希望它打印 25,作为借来的指针。我得到了 140125321300160,这可能是浮点数的地址。