CodeBlanks Logo Icon CodeBlanks

Bool ve char

bool ve char türlerini kullanarak mantık ve karakter saklarsın.

Bool ve char

bool true/false değerlerini alır. char tek tırnakla yazılır ve 4 baytlık bir Unicode skaler değeridir; yalnızca ASCII değil, Türkçe harfler ve emojiler de tek char'dır:

let aktif = true;
let harf = 'ş';
let emoji = '🦀';
println!("{} {} {}", aktif, harf.is_alphabetic(), emoji);

Çift tırnak ("a") bir string, tek tırnak ('a') bir char'dır.

char yöntemleri

char sınıflandırma ve dönüştürme yöntemleri sunar:

let c = '7';
println!("{}", c.is_ascii_digit());     // true
println!("{:?}", c.to_digit(10));       // Some(7)
println!("{}", 'a'.to_ascii_uppercase()); // A
println!("{}", 'A' as u32);            // 65

Mantıksal operatörler kısa devre yapar: a && b ifadesinde a false ise b hiç hesaplanmaz.

Uygulama Rakam toplamı

"4096" metnindeki her karakteri .chars() ile gez, to_digit(10) ile sayıya çevir ve topla. Toplamı yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn main() {
    let mut toplam = 0;
    for c in "4096".chars() {
        toplam += c.to_digit(10).unwrap();
    }
    println!("{}", toplam);
}

Beklenen çıktı

19

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>std::mem::size_of::&lt;char&gt;()</code> kaç döndürür?

  • 1
  • 2
  • 8
  • 4 Doğru cevap

Açıklama: char her Unicode karakterini tutabilmek için 4 bayttır; string içinde ise karakterler UTF-8 olarak 1-4 bayt yer kaplar.

2 Rakama çevir

Soru
let d = '9'.____(10);  // Some(9)
Cevap
let d = '9'.to_digit(10);  // Some(9)

Açıklama: to_digit(10) onluk rakamı Option<u32> olarak döndürür.

3 İfade ve sonuç

Kavram Anlamı
'A' as u32 65
'ş'.is_alphabetic() true
'x'.to_digit(10) None
!true false

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma