我在
src/user/entity/user.rs
中有一个文件,其中包含以下代码:
pub struct User {
name: String,
email: String,
age: i32,
is_active: bool,
}
impl User {
pub fn new(name: String, email: String, age: i32, is_active: bool) -> User {
User {
name,
email,
age,
is_active
}
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn get_email(&self) -> &str {
&self.email
}
pub fn get_age(&self) -> i32 {
self.age
}
pub fn is_active(&self) -> bool {
self.is_active
}
pub fn set_name(&mut self, name: String) {
self.name = name
}
pub fn set_email(&mut self, email: String) {
self.email = email
}
pub fn set_age(&mut self, age: i32) {
self.age = age
}
pub fn set_active(&mut self, is_active: bool) {
self.is_active = is_active
}
}
如何将其导入到
src/main.rs
文件中?
use user::entity::User;
fn main() {
let mut _user = User::new("John".to_string(), "[email protected]".to_string(), 30, true);
println!("User");
println!("Name: {}", _user.get_name());
println!("Email: {}", _user.get_email());
println!("Age: {}", _user.get_age());
println!("Active: {}", _user.is_active());
_user.set_active(false);
_user.set_name("Jane".to_string());
_user.set_email("[email protected]".to_string());
_user.set_age(43);
}
我还需要创建更多文件吗?我必须在cargo.toml 中添加一些内容吗?我看了官方文档还是不太明白。
您需要为每个级别创建一个模块。
执行此操作的好方法是放入
main.rs
:
pub mod user;
然后创建一个文件
src/user/mod.rs
或src/user.rs
并放入其中:
pub mod entity;
然后创建一个文件
src/user/entity/mod.rs
或src/user/entity.rs
并放入其中:
pub mod user;
然后将
use
顶部的 main.rs
声明更改为:
use user::entity::user::User;
那么你的代码应该可以工作。
快速而肮脏(而且不好)的方法是放入
main.rs
:
pub mod user {
pub mod entity {
pub mod user;
}
}
并按照上面的方式更改
use
声明,就完成了。