rust

    8热度

    1回答

    仅供参考,我使用的是Rust 0.7。 我想创建一个使用拥有链表的堆栈实现,我遇到了麻烦。 trait Stack<T> { fn push(&mut self, item : T); fn pop(&mut self) -> Option<T>; } enum Chain<T> { Link(T, ~Chain<T>), Break } imp

    2热度

    1回答

    This article似乎意味着在生锈文档中使用术语“移动”并不意味着副本,而是编译时所有权的转移。具体请参阅此报价: 编译器强制只有一个所有者。指定新位置的指针会转移所有权(简称为移动)。考虑这个程序: 这是正确的吗?所有权转移/移动实际上并不是在运行时复制,而只是编译时抽象。

    2热度

    3回答

    我正在学习Rust以及extra :: json模块。这是我的例子(额外unneeed类型的注释): let j:Result<Json,JsonError> = from_str("[{\"bar\":\"baz\", \"biz\":123}]"); let l:List = match j { Ok(List(l)) => l, Ok(_) => fail!("Expe

    1热度

    1回答

    我遇到了lifetimes和借用点的问题。我已阅读手册和借用的指针教程,但是...我仍然卡住了。 的main.rs素描 fn main() { let (db_child, repo_child):(DuplexStream<~str, ~str>, DuplexStream<~str, ~str>) = DuplexStream(); do spawn { slu

    5热度

    2回答

    我无法弄清楚如何使用类型为~str的密钥的HashMap。例如, let mut map: hashmap::HashMap<~str, int> = hashmap::HashMap::new(); // Inserting is fine, I just have to copy the string. map.insert("hello".to_str(), 1); // If I

    3热度

    1回答

    我正在构建Rust教程的示例。当我尝试编译此示例时: use std::float; use std::num::atan; fn angle(vector: (float, float)) -> float { let pi = float::consts::pi; match vector { (0f, y) if y < 0f => 1.5 * pi,

    1热度

    1回答

    鉴于这种代码(也here): struct Vector2 { x: int, y: int } impl Vector2 { pub fn new(xs: int, ys: int) -> Vector2 { Vector2 { x: xs, y: ys } } fn add(&self

    2热度

    1回答

    的代码: enum A { Foo, Bar, Baz(~str) } #[test] fn test_vector(){ let test_vec = ~[Foo, Bar, Baz(~"asdf")]; for x in test_vec.iter() { match x { &Foo => true,

    2热度

    1回答

    我正在写一个箱子,它包含分布在多个文件中的多个模块。这些模块是相互依赖的,即一些模块使用该箱子内的其他模块。 是否有可能在这些模块中运行测试与箱子中的其他模块分开?如果some_module.rs包含对此包中其他模块的引用,则运行rust test some_module.rs不起作用。运行rust test my_crate.rc确实有效,但它运行来自所有箱子模块的测试,这不是我想要的。

    2热度

    2回答

    我有大致有以下代码: let val = util::replace(&mut self.some_field[i], self.some_method()); 它失败,出现以下消息: unrelated.rs:61:65: 61:70 error: cannot borrow `*self` as immutable because it is also borrowed as mutabl