2016-09-06 65 views
-1

這個簡單的例子中main.rs如何在模塊的父範圍內引用模塊的成員?

pub mod types { 
    pub struct Foo { 
     _var: usize, 
    } 
} 
use types::Foo; 

fn main() { 
    let _unused: Foo; 
    println!("Hello, world!"); 
} 

工作然而,當它在一個文件,該文件是其自我編譯爲模塊,這給出了一個錯誤:

error: unresolved import `types::Foo`. Maybe a missing `extern crate types`?

是否有可能使一個從模塊引用子模塊的公共成員?

回答

3

當一個模塊中,self需要使用,如:

pub mod types { 
    pub struct Foo { 
     _var: usize, 
    } 
} 
use self::types::Foo; // <-- self here 

2009年,由於IRC @nox了這個答案。