Variabel dan fungsi memiliki nama yang sama. Bagaimana saya memanggil fungsi?
fn main() {
let a = 1;
fn a() -> i32 {
2
}
println!("{}", a());
}
Kompiler Rust memberi tahu saya:
error[E0618]: expected function, found `{integer}`
Dengan kata lain, kompiler Rust tidak memanggil a
fungsi, tetapi sebaliknya mengakses a
variabel.
Jawaban:
Ini tidak dapat dilakukan karena Anda tidak memiliki fungsi dan integer dalam lingkup di mana Anda memiliki
println
.Karena fungsi biasanya tersedia untuk seluruh ruang lingkup (yaitu Anda dapat menggunakannya sebelum deklarasi mereka), deklarasi mereka secara konseptual dipindahkan ke awal ruang lingkup (mereka "diangkat").
Konsekuensinya adalah bahwa deklarasi fungsi sebelum deklarasi variabel integer dan dibayangi.
Perbaikan kode Anda yang sebenarnya akan tergantung pada situasi Anda yang sebenarnya. Mungkin kira-kira seperti ini:
sumber