变量和函数具有相同的名称。如何调用该函数?
fn main() {
let a = 1;
fn a() -> i32 {
2
}
println!("{}", a());
}
Rust编译器告诉我:
error[E0618]: expected function, found `{integer}`
换句话说,Rust编译器不会调用a
函数,而是访问a
变量。
答案 0 :(得分:8)
无法完成此操作,因为您没有println
所在的函数和整数。
由于函数通常在整个范围内都可用(即,您可以在声明它们之前使用它们),因此它们的声明从概念上讲移到了范围的开头(它们被“吊起”)。
结果是函数声明在整数变量声明之前,并且已被遮盖。
代码的真正修复取决于您的实际情况。也许是这样的:
fn main() {
{
let a = 1;
// use the integer there
}
fn a() -> i32 {
2
}
println!("{}", a());
}