小编Eug*_*sov的帖子

为什么结构中的Box <T>需要"显式生命周期约束"?

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

我正在尝试编译此代码:

trait A {
    fn f(&self);
}

struct S {
    a: Box<A>,
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

a.rs:6:13: 6:14 error: explicit lifetime bound required
a.rs:6     a: Box<A>,
Run Code Online (Sandbox Code Playgroud)

我想S.a拥有一个实例A,并且不知道这个生命周期是如何合适的.我需要做些什么才能使编译器满意?

我的Rust版本:

rustc --version
rustc 0.12.0-pre-nightly (79a5448f4 2014-09-13 20:36:02 +0000)
Run Code Online (Sandbox Code Playgroud)

rust rust-obsolete

21
推荐指数
2
解决办法
7673
查看次数

为什么生锈无法在子模块中找到功能?

我正在尝试从位于单独文件中的模块调用函数,该函数是公共的,我使用完整路径调用它,但是rustc仍然抱怨"未解析的名称".

a.rs

pub mod b;
fn main() {
  b::f()
}
Run Code Online (Sandbox Code Playgroud)

b.rs

pub mod b {
    pub fn f(){
        println!("Hello World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

汇编

$ rustc a.rs
a.rs:3:5: 3:9 error: unresolved name `b::f`.
Run Code Online (Sandbox Code Playgroud)

当我将模块移动到包的主文件时,一切正常.

one_file.rs

pub mod b {
    pub fn f(){
        println!("Hello World!");
    }
}
fn main() {
    b::f()
}
Run Code Online (Sandbox Code Playgroud)

这两种方式不应该是等价的吗?我做错了什么,或者是生锈的错误?

module rust

5
推荐指数
1
解决办法
3917
查看次数

标签 统计

rust ×2

module ×1

rust-obsolete ×1