CodeBlanks Logo Icon CodeBlanks

Dilim sözdizimi

[a..b] ve [a..] dilim sözdizimini öğrenirsin.

Dilim sözdizimi

Aralığın uçları atlanabilir:

let s = "abcdef";
&s[..3]    // "abc"   (baştan 3'e kadar)
&s[3..]    // "def"   (3'ten sona)
&s[..]     // "abcdef" (tamamı)
&s[1..=2]  // "bc"    (2 dahil)

a..b b'yi dışarıda bırakır, a..=b dahil eder. &s[..] bir String'i &str'ye çevirmenin bir yoludur.

Sınır denetimi

Sınırların dışına çıkmak panic verir: &"abc"[1..5] "byte index 5 is out of bounds" hatasıyla durur. Başlangıç bitişten büyükse de panic olur. Panic istemiyorsan get kullan; Option döner:

let s = "abc";
println!("{:?}", s.get(0..2));   // Some("ab")
println!("{:?}", s.get(1..5));   // None

Uygulama Üç dilim

let s = "abcdef"; için &s[..3], &s[3..] ve &s[1..=2] dilimlerini boşlukla ayırarak tek satırda yazdır.

Başlangıç kodu

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

Örnek çözüm

main.rs
fn main() {
    let s = "abcdef";
    println!("{} {} {}", &s[..3], &s[3..], &s[1..=2]);
}

Beklenen çıktı

abc def bc

Soru ve cevaplar

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

1 <code>&amp;"abcdef"[2..=4]</code> nedir?

  • "bcde"
  • "cde" Doğru cevap
  • "cd"
  • "bcd"

Açıklama: 2, 3 ve 4. baytlar alınır: c, d, e.

2 Sona kadar

Soru
let s = "abcdef";
let son = &s[____];   // "def"
Cevap
let s = "abcdef";
let son = &s[3..];   // "def"

Açıklama: 3.. aralığı 3. bayttan sona kadar gider.

3 Aralık ve "abcdef" sonucu

Kavram Anlamı
[..3] "abc"
[3..] "def"
[1..=2] "bc"
[..] "abcdef"

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