Struct 无法为模块中的结构实现trait
感谢您抽出时间阅读我的问题。我已经到处寻找我的问题的答案,包括铁锈文件,但都没有找到。如果有人能告诉我发生了什么,甚至能给我指出正确的方向,那就太好了Struct 无法为模块中的结构实现trait,struct,scope,rust,traits,Struct,Scope,Rust,Traits,感谢您抽出时间阅读我的问题。我已经到处寻找我的问题的答案,包括铁锈文件,但都没有找到。如果有人能告诉我发生了什么,甚至能给我指出正确的方向,那就太好了 这就是问题所在 我有一个模块。在模块内部,我有一个结构和一个特征。我想在结构上为这个特性编写一个实现。但是,在执行此操作之后,我无法调用在实现内部定义的函数,我不断得到以下错误 错误:键入'my_module::a_struct'在名为'sound'的范围内未实现任何方法。 下面是生成此错误的代码 我们非常感谢您对这个问题的任何见解 mod m
这就是问题所在 我有一个模块。在模块内部,我有一个结构和一个特征。我想在结构上为这个特性编写一个实现。但是,在执行此操作之后,我无法调用在实现内部定义的函数,我不断得到以下错误 错误:键入'my_module::a_struct'在名为'sound'的范围内未实现任何方法。 下面是生成此错误的代码 我们非常感谢您对这个问题的任何见解
mod my_module {
pub struct a_struct;
pub trait a_trait {
pub fn sound(&self);
}
pub impl a_trait for a_struct {
pub fn sound(&self) {
println!("a sound");
}
}
}
fn main() {
let a_struct = ::my_module::a_struct;
a_struct.sound();
}
我也是个新手,但问题是你的主程序只能看到
中的a_结构
::我的模块::a_结构
,而看不到你导出的a_路径
你必须做一些类似的事情
use my_module::a_trait;
mod my_module {
pub struct a_struct;
pub trait a_trait {
fn sound(&self);
}
impl a_trait for a_struct {
fn sound(&self) {
println!("a sound");
}
}
}
fn main() {
let my_struct = ::my_module::a_struct;
my_struct.sound();
}
我也是个新手,但问题是你的主程序只能看到
中的a_结构
::我的模块::a_结构
,而看不到你导出的a_路径
你必须做一些类似的事情
use my_module::a_trait;
mod my_module {
pub struct a_struct;
pub trait a_trait {
fn sound(&self);
}
impl a_trait for a_struct {
fn sound(&self) {
println!("a sound");
}
}
}
fn main() {
let my_struct = ::my_module::a_struct;
my_struct.sound();
}
您需要使用
使用my_模块::my_trait将trait纳入范围代码>。此外,还有许多不必要的可见性修饰符(pub
)。playpen上的一个工作示例。您需要使用使用my_模块::my_trait代码>。此外,还有许多不必要的可见性修饰符(pub
)。playpen上的一个工作示例。惯例说明:AStruct
和ATrait
。惯例说明:AStruct
和ATrait
。谢谢,我添加了使用我的_模块::我的_特征代码>行,现在一切正常。我添加了所有pub限定符以排除权限问题代码>行,现在一切正常。我添加了所有pub限定符以排除权限问题。