我正在阅读 RuSTLang 官方书籍,并已达到第 14.3 章.但是,一旦我达到构建工作区的某个点,编译器就会抛出一个错误。我的项目看起来像这样(根据书)
├── Cargo.lock
├── Cargo.toml
├── add-one
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── adder
│ ├── Cargo.toml
│ └── src
│ └── main.rs
└── target
与 Cargo.toml
[workspace]
members = [
"adder",
"add-one",
]
add-one/src/lib.rs
#![allow(unused)]
fn main() {
pub fn add_one(x: i32) -> i32 {
x + 1
}
}
adder/Cargo.toml
...
[dependencies]
add-one = { path = "../add-one" }
adder/src/main.rs
use add_one;
fn main() {
let num = 10;
println!(
"Hello, world! {} plus one is {}!",
num,
add_one::add_one(num)
);
}
我最初尝试输入文件,但出现上述错误,因此决定复制/粘贴书中的所有文件,但也没有运气。我错过了什么?是我的代码有问题,还是书中的例子有问题?
最佳答案
您正在定义 add_one
里面main
功能:
#![allow(unused)]
fn main() {
pub fn add_one(x: i32) -> i32 {
x + 1
}
}
嵌套函数的范围仅限于其父函数,这意味着 add_one
在 main
之外不可见.您可以通过声明 add_one
来解决此问题在模块范围内:pub fn add_one(x: i32) -> i32 {
x + 1
}
关于RuSTLang 书 14.3 - 错误 [E0425] : cannot find function `add_one` in crate `add_one` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65620350/