Pas aslında bu kadar let x: i32 = 565;
let (x,y) = (1,3);
ile daha önce tanımlanmış x
gölgeler bir yeni değişken x
tanımlıyor, bir blokta diğer değişkenleri gölge sağlar. İkinci x
tamamen yeni bir değişken olduğundan, farklı bir türe sahip olmak için x
yeniden tanımladığınızı unutmayın!
fn main(){
let x = 1;
println!("Now X is {}",x);
let x = "hi";
println!("Now X is {}",x);
}
Bu reddit thread bu yararlı olmasının nedeni hakkında daha ayrıntılı anlatır. ilginç görünüyor bahsedilmektedir iki şey vardır: değişkenin sahipliğini almak, ama aynı türdeki başka bir değişken dönüş işlemleri için
, bazen sahip döndü değişkeni yeniden tanımlamak için "hoş görünüyor" aynı isim. here Gönderen:
let iter = vec.into_iter();
let iter = modify(iter);
let iter = double(iter);
Veya değişken değişmez yapmak için:
let mut x;
// Code where `x` is mutable
let x = x;
// Code where `x` is immutable
bu dilde izin verilir Neden? Bu, mantık hatalarının büyük programda kolayca görülmesine neden olmaz mı? Gölgeleme amacı nedir ve bu kavramı kullanan başka bir dil var mı? – Viraj
Önceden gölgelenen bir değişkeni nasıl referanslarsınız? – Dai
@Dai Yapabileceğinizi sanmıyorum ... Sahipliği her zaman başka bir değişkene geçirebilirsiniz 'let y = x'. – Alec