使用在另一个文件中定义的未声明类型

use*_*563 -5 rust

所以,我有一个具有自己类的文件层次结构。下面是一个例子:

mod query;

struct Row<T>{
    data: Vec<Query<T>>,
}

impl<T> Row<T>{
    fn new(array: Vec<Query<T>>) -> Row<T>{
        Row{
          data: array,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然它说文件在那里,但它说“查询是一种未声明的类型”,即使它存在于另一个文件中。当所有内容都在同一个文件中时,代码有效。

She*_*ter 5

这在 Rust 书中有记录,特别是关于 modules部分。当您有不同的模块时,您需要使用use关键字将其他模块中的项目引入作用域。

mod query {
    pub struct Query;
}

// Bring Query into scope
use query::Query;

struct Row(Vec<Query>);

fn main() {}
Run Code Online (Sandbox Code Playgroud)