The*_*eks 7 struct project-structure rust
出于推测目的,假设您有三个文件:main.rs、struct.rs和impl.rs。您可以在 中定义一个结构体struct.rs,将一个结构体放在impl那里,再将另一个结构体放入impl中impl.rs,然后使用 中的两组implsmain.rs吗?如果是这样,怎么办?
项目结构:
main.rs:
use struct;
use impl;
main() {
let foobar = struct::Struct::new(); // defined in struct.rs
foobar.x(); // defined in impl.rs
}
struct.rs:
Define Struct, first impl
impl.rs:
Second impl
Run Code Online (Sandbox Code Playgroud)
是的,这是可能的。您可以在整个箱子中为您的结构提供实现。您只是无法为外部板条箱中的类型提供实现。并且您不需要做任何特殊的事情来使这项工作 \xe2\x80\x93 只需确保该结构在main. 当然,您不能命名您的模块struct和impl,因为这些是保留字。
这是一些示例代码:
\nfn main() {\n use struct_::A;\n A::foo();\n A::bar();\n}\n\npub mod struct_ {\n pub struct A;\n\n impl A {\n pub fn foo() {}\n }\n}\n\nmod impl_ {\n impl crate::struct_::A {\n pub fn bar() {}\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n(游乐场)
\n| 归档时间: |
|
| 查看次数: |
3000 次 |
| 最近记录: |