问题标签 [rust-obsolete]
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.
rust - ToString 和 IntoString 之间的区别
我想知道两者之间有什么区别:
和
前者似乎来自ToString,这很清楚。
但是,后者似乎来自IntoString,这对我来说不太清楚。
它对价值意味着什么consume
?这两个特征有什么区别?
在做了一些挖掘之后的附加信息。
这是for a的当前实现into_string
String
。正如你所看到的,它只返回自己,所以没有分配。
enums - 在 crate 中时无法在范围内获取 Rust 枚举
编者注:本题中的代码来自 Rust 1.0 之前的版本。Rust 1.0 更改了枚举如何导入的底层系统。
这似乎应该很容易(模拟 C/C++ 枚举),但我无法让它工作。我只是想使用板条箱中的枚举,但无论我尝试什么,这似乎都不起作用。我是否遗漏了有关 Rust 枚举的某些内容(它们不能像旧的 C/C++ 枚举那样使用)?
日志/mod.rs:
main.rs:
rust - 如何循环盒装迭代器?
注意:这个问题自 Rust 1.0 以来已过时。
Iterator
trait 现在有一个关联的类型,而Item
不是类型参数,并且为 .Iterator
添加了一个全面的实现Box<Iterator>
。
我想定义一个返回迭代器的特征方法。我想避免指定实际的返回类型是什么,所以在我们取消装箱的抽象返回类型之前,我使用的是 trait 对象。这意味着方法返回Box<Iterator<A>>
。但我不确定如何使用盒装特征对象。我无法遍历类型的对象Box<Iterator<A>>
:
这与"for" loop expression does not implement the "Iterator" trait
.
所以我的问题是:我如何迭代Box<Iterator<A>>
. 或者,更一般地说,我如何使用盒装特征对象?
rust - 为什么 Box 需要“明确的生命周期限制”指导?
编者注:此代码在RFC 599实施后不再产生相同的错误,但答案中讨论的概念仍然有效。
我正在尝试编译此代码:
我收到了这个错误:
我想S.a
拥有一个 的实例A
,并且看不到该生命周期在这里如何合适。我需要做什么才能让编译器满意?
我的锈版本:
struct - 如何声明我想要一个包含对实现特征的事物的引用的结构?
编者注:问题中提供的代码在 Rust 1.0 中按原样编译。
我试过了:
但编译器抱怨:
rust - 使用带有切片的结构时,“借用值的寿命不够长”
编者注:这个问题中的代码早于 Rust 1.0。从那时起,语义发生了变化,问题中的一些断言不再正确。
我有以下代码:
&
当我用(ie )定义一个切片时&[1, 2, 3]
,如下所示println!
输出是
定义切片&
给我同样的结果
如果我首先尝试将一个 struct 的实例绑定到一个变量A
,该实例的a
字段是使用对切片的引用(即 using )初始化的&
x
我尝试执行与println!
以前类似的操作
我明白了
A
但是,如果我将其a
字段初始化为切片(不是使用切片的引用)的实例绑定&
到变量x
我尝试执行与println!
以前类似的操作
我收到以下构建错误:
我期待只A { a: &[1, 2, 3] }
允许定义,因为A.a
应该有&[i64]
类型,但显然,Rust 允许我们不包含&
符号。
A { a: &[1, 2, 3] }
和 和有什么不一样A { a: [1, 2, 3] }
?为什么我们允许使用A { a: [1, 2, 3] }
(在上面的第二个示例中)?
rust - 用于库的 Cargo.toml
我想为 rust 创建一个库。这是我的项目的 Cargo.toml 文件:
这是我的存储库的文件:
当我运行命令“cargo run”或“cargo build”或“cargo test”时,我收到以下错误消息:
Cargo.toml 不是有效的清单
期望一个 type 的值
array
,但找到一个table
key的 type 值lib
如何格式化我的 Cargo.toml 以便正确编译?
rust - 你将如何在 Rust 中流式传输进程的输出?
这个问题是指截至 2014 年 10 月的 Rust。
如果您使用的是 Rust 1.0 或更高版本,您最好在别处寻找解决方案。
我有一个长时间运行的 Rust 进程,它生成日志值,我正在使用Process运行它。
它看起来虽然我可能能够定期“检查”正在运行的进程,并使用set_timeout()
并wait()
执行某种高级循环,例如:
我不是100%的事情是;我如何区分超时错误和进程返回错误之间的区别wait()
,以及如何使用PipeStream
“在不阻塞流的情况下尽可能多地读取”每个间隔推出。
这是最好的方法吗?我应该开始一项任务来监视 stdout 和 stderr 吗?
arrays - 使用常量表达式声明数组的大小
我有一个围绕数组的新类型包装器。我假设我可以使用size_of
而不是手动传递数组的大小,但编译器认为我错了。
(游戏围栏链接)
我正在使用每晚:rustc 0.13.0-nightly (7e43f419c 2014-11-15 13:22:24 +0000)
此代码失败并出现以下错误:
Rust Reference on Array Expressions让我认为这应该可行:
在
[expr ',' ".." expr]
表单中,后面的表达式".."
必须是可以在编译时求值的常量表达式,例如字面量或静态项。
rust - 如果没有传递给 spawn(),则无法推断 proc() 的类型信息
这编译:
但是,如果我注释掉spawn(square)
,则会引发以下错误:
没有产卵就无法推断出spawn()
a 的类型信息有什么特别之处?proc()