gpt4 book ai didi

struct - 无法在模块中实现结构的特征

转载 作者:行者123 更新时间:2023-11-29 08:23:09 25 4
gpt4 key购买 nike

感谢您花时间阅读我的问题。我到处寻找我的问题的答案,包括 rust 文档,但无济于事。如果有人能告诉我发生了什么,甚至为我指出正确的方向,那就太好了。


那么问题来了。

我有一个模块。在该模块内部,我有一个结构和一个特征。我想在结构上为该特征编写一个实现。但是在这样做之后我无法调用实现内部定义的函数,我不断收到以下错误。

错误:类型 `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_struct来自 ::my_module::a_struct它没有看到 a_trails您已导出。

你必须做类似的事情。

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();
}

关于struct - 无法在模块中实现结构的特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24707129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com