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

0 投票
2 回答
2243 浏览

rust - ToString 和 IntoString 之间的区别

我想知道两者之间有什么区别:

前者似乎来自ToString,这很清楚。

但是,后者似乎来自IntoString,这对我来说不太清楚。

它对价值意味着什么consume?这两个特征有什么区别?


在做了一些挖掘之后的附加信息。

这是for a的当前实现into_stringString。正如你所看到的,它只返回自己,所以没有分配。

0 投票
1 回答
2127 浏览

enums - 在 crate 中时无法在范围内获取 Rust 枚举

编者注:本题中的代码来自 Rust 1.0 之前的版本。Rust 1.0 更改了枚举如何导入的底层系统。

这似乎应该很容易(模拟 C/C++ 枚举),但我无法让它工作。我只是想使用板条箱中的枚举,但无论我尝试什么,这似乎都不起作用。我是否遗漏了有关 Rust 枚举的某些内容(它们不能像旧的 C/C++ 枚举那样使用)?

日志/mod.rs:

main.rs:

0 投票
1 回答
3225 浏览

rust - 如何循环盒装迭代器?

注意:这个问题自 Rust 1.0 以来已过时。Iteratortrait 现在有一个关联的类型,而Item不是类型参数,并且为 .Iterator添加了一个全面的实现Box<Iterator>

我想定义一个返回迭代器的特征方法。我想避免指定实际的返回类型是什么,所以在我们取消装箱的抽象返回类型之前,我使用的是 trait 对象。这意味着方法返回Box<Iterator<A>>。但我不确定如何使用盒装特征对象。我无法遍历类型的对象Box<Iterator<A>>

这与"for" loop expression does not implement the "Iterator" trait.

所以我的问题是:我如何迭代Box<Iterator<A>>. 或者,更一般地说,我如何使用盒装特征对象?

0 投票
2 回答
10563 浏览

rust - 为什么 Box 需要“明确的生命周期限制”指导?

编者注:此代码在RFC 599实施后不再产生相同的错误,但答案中讨论的概念仍然有效。

我正在尝试编译此代码:

我收到了这个错误:

我想S.a拥有一个 的实例A,并且看不到该生命周期在这里如何合适。我需要做什么才能让编译器满意?

我的锈版本:

0 投票
2 回答
4153 浏览

struct - 如何声明我想要一个包含对实现特征的事物的引用的结构?

编者注:问题中提供的代码在 Rust 1.0 中按原样编译。

我试过了:

但编译器抱怨:

0 投票
1 回答
680 浏览

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] }(在上面的第二个示例中)?

0 投票
2 回答
3388 浏览

rust - 用于库的 Cargo.toml

我想为 rust 创建一个库。这是我的项目的 Cargo.toml 文件:

这是我的存储库的文件:

当我运行命令“cargo run”或“cargo build”或“cargo test”时,我收到以下错误消息:

Cargo.toml 不是有效的清单

期望一个 type 的值array,但找到一个table key的 type 值lib

如何格式化我的 Cargo.toml 以便正确编译?

0 投票
2 回答
1411 浏览

rust - 你将如何在 Rust 中流式传输进程的输出?

这个问题是指截至 2014 年 10 月的 Rust。

如果您使用的是 Rust 1.0 或更高版本,您最好在别处寻找解决方案。


我有一个长时间运行的 Rust 进程,它生成日志值,我正在使用Process运行它。

它看起来虽然我可能能够定期“检查”正在运行的进程,并使用set_timeout()wait()执行某种高级循环,例如:

我不是100%的事情是;我如何区分超时错误和进程返回错误之间的区别wait(),以及如何使用PipeStream“在不阻塞流的情况下尽可能多地读取”每个间隔推出。

这是最好的方法吗?我应该开始一项任务来监视 stdout 和 stderr 吗?

0 投票
1 回答
4526 浏览

arrays - 使用常量表达式声明数组的大小

我有一个围绕数组的新类型包装器。我假设我可以使用size_of而不是手动传递数组的大小,但编译器认为我错了。

游戏围栏链接

我正在使用每晚:rustc 0.13.0-nightly (7e43f419c 2014-11-15 13:22:24 +0000)

此代码失败并出现以下错误:

Rust Reference on Array Expressions让我认为这应该可行:

[expr ',' ".." expr]表单中,后面的表达式".."必须是可以在编译时求值的常量表达式,例如字面量或静态项。

0 投票
1 回答
158 浏览

rust - 如果没有传递给 spawn(),则无法推断 proc() 的类型信息

这编译:

但是,如果我注释掉spawn(square),则会引发以下错误:

没有产卵就无法推断出spawn()a 的类型信息有什么特别之处?proc()