回答:
あなたが持っているスコープ内に関数と整数の両方がないため、これを行うことはできませんprintln
。
関数は通常、スコープ全体で使用できるため(つまり、宣言の前に使用できます)、関数の宣言は概念的にスコープの先頭に移動します(「巻き上げられます」)。
結果として、関数宣言は整数変数宣言の前にあり、シャドウされます。
コードの実際の修正は、正確な状況によって異なります。多分このようなもの:
fn main() {
{
let a = 1;
// use the integer there
}
fn a() -> i32 {
2
}
println!("{}", a());
}