fn control1(){ let n=2; if n==2{ println!("eşit"); } else if n>2 { println!("büyük"); } else{ println!("küçük"); }}
fn control2(){ let n=2; let sonuc = if n==2{ "eşit" } else if n>2 { "büyük" } else{ "küçük" }; println!("sonuc= {}",sonuc);}
fn loop1(){ let mut count=0;
// loop == while(true) loop { println!("finite"); count += 1;
if count >= 4 { break; } } println!("{}",count);}#[allow(dead_code)] // kullanılmayan kodlar için uyarıları keser.fn loop2(){ 'a: loop{ println!("loop a"); 'b: loop{ println!("loop b"); 'c: loop{ println!("loop c"); // break; break 'b; } } continue 'a; }}fn loop_binding(){ let c = loop { break 10; // break and return(10) }; println!("{}",c);}
fn while1(){ let mut count = 8; while count<=0{ println!("{}!",count); count -=1; }}fn for1(){ let v=vec![10,20,30,40,50]; for i in v{ println!("{}!",i); }
for i in 1..11{ // exclusive range print!("{}, ",i) } println!();
}
fn match1(){ let x= 4;
match x { 1=> println!("birde bir yerin dibine gir."), 2=> println!("ikide iki ponpon tilki"), 3=> println!("üçte üç bulması güç"), 4=> println!("pasta buldum dörtümüze böl"), _=> println!("daha bilmiyorum."), // diğerleri olmazsa bu işlenir. }
//binding let sonuc= match x { 1=> "birde bir yerin dibine gir.", 2=> "ikide iki ponpon tilki", 3=> "üçte üç bulması güç", 4=> "pasta buldum dörtümüze böl", _=> "daha bilmiyorum.", // eğer varsayılan eklenmezse derleyici hata verir. }; println!("{}",sonuc);
//daha karmaşık match let k=11; match k { 1=> println!("Biiiir"), 2 | 3 | 4 | 5 | 6 | 7 | 8 => println!("2 ve 8 arasında 8 dahil. Daha çocuk"), 8...18 => println!("ergen sayılır."), // inclusive range "..." üç nokta olacak! _ => println!("varsayılan duruma düştü"), }
// tuple ve match. daha havalı match olamazdı. let pair = (0,-1); match pair{ (0,y)=>println!("y: {}",y), // ilk eleman 0 eşletme var. y bilinmiyor ve değeri verecek (x,0)=>println!("x: {}",x), _=> println!("eşleşme bulunamadı."), }
let pair = (6,-6); match pair{ (x,y) if x==y =>println!("ikisi eşittir."), (x,y) if x+y == 0 =>println!(" hmm biri negatif"), (x,_) if x%2 == 0 => println!("x çift sayıdır."), _=> println!("eşleşme bulunamadı."), }
/// inclusive binding /// büyütülecek birşey yok. /// p hangi değeri için eşleşiyorsa n ye atanır ve println! ile ekrana yazdırılır. /// /// match yapılacak nesne için sahipliğiniz yoksa böyle kullanmaktan başka çare yoktur.
let p=5; match p{ n@ 1 ... 12 => println!("n= {}",n), n@ 13 ... 19 => println!("n= {}",n), _ => println!("eşleşme yok.") // virgül varsayılan için şart değil. }
let n= match p{ n@ 1 ... 12 => n, n@ 13 ... 19 => n, _ => 0 // çalışma zamanı çok biçimliği anlatmadım. anlattığımda "eşleşme yok." diyebileceğiz }; println!("n binding= {}",n)
}
fn main() {/* control1(); control2();
loop1(); // loop2(); // loop forever loop_binding();
while1(); for1();*/ match1();
}
Yorumlar
Yorum Gönder