如何在 main.rs 中导入一个函数

4
这可能是个愚蠢的问题,但我似乎解决不了它。
我有这样一种文件结构:
└── src
    ├── another.rs
    ├── some_file.rs
    └── main.rs

some_file.rs中,我想要调用main.rs中的一个函数。因此,我在some_file.rs中尝试做这样的事情:
use crate::main


fn some_func() {
   // other code
   
   main::another_func_in_main();
}

但是编译器会抛出一个错误:

use of an undeclared crate or module `main`

我该如何解决这个问题?


1
尝试使用 use crate::another_func_in_main - Martin Gallagher
main不是一个模块,它是crate的根。尝试使用crate::another_func_in_main(); - Holloway
1个回答

6

即使你有一个名为main.rs的文件,也没有main模块。你在main.rs文件中放置的内容被认为是crate的

所以你有两种方式调用函数:

1. 直接调用(不使用use)

crate::another_func_in_main();

2. 通过先进行导入

use crate::another_func_in_main;

// Then in code, no need for a prefix:
another_func_in_main();

2
评论链接 https://dev59.com/6GEi5IYBdhLWcg3w0fBR 和 https://stackoverflow.com/q/61244940/3650362(指出您还可以使用 super:: 来表示相对于当前模块的模块路径) - trent
@WarrenWeckesser 没错,谢谢你! - at54321

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接