Menu
Coddy logo textTech

is_some() ve is_none()

Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 37 / 66.

Bazen bir Option türünün, değerini gerçekten çıkarmadan bir değer içerip içermediğini kontrol etmeniz gerekir. Rust bunun için iki kullanışlı yöntem sunar: .is_some() ve .is_none().

Her iki yöntem de bir boolean değer döndürür, bu da onları if koşullarında kullanım için mükemmel kılar:

let maybe_score = Some(85);

if maybe_score.is_some() {
    println!("We have a score!");
}

if maybe_score.is_none() {
    println!("No score available");
}

.is_some() metodu, eğer Option bir Some değeri içeriyorsa true, None ise false döndürür. .is_none() metodu tam tersi şekilde çalışır - None için true ve Some için false döndürür.

challenge icon

Görev

Kolay

Girdi olarak bir sayı alacaksınız. Eğer sayı pozitifse Some(number) içeren, sayı sıfır veya negatifse None içeren bir Option<i32> oluşturun. Option'ı kontrol etmek için .is_some() ve .is_none() metodlarını kullanın ve uygun mesajı yazdırın.

Gereksinimler:

  • Girdiyi okuyun ve i32 türüne dönüştürün
  • Bir Option<i32> değişkeni oluşturun:
    • Eğer sayı pozitifse (0'dan büyükse), Some(number) atayın
    • Eğer sayı sıfır veya negatifse, None atayın
  • Option'ın bir değer içerip içermediğini kontrol etmek için .is_some() kullanın
  • Eğer .is_some() değeri true dönerse, şunu yazdırın: Positive number detected
  • Option'ın boş olup olmadığını kontrol etmek için .is_none() kullanın
  • Eğer .is_none() değeri true dönerse, şunu yazdırın: No positive number

Girdi:

  • Tek bir tam sayı (örneğin, 42, 0 veya -5)

Çıktı:

  • Eğer sayı pozitifse: Positive number detected
  • Eğer sayı sıfır veya negatifse: No positive number

Kopya kağıdı

Bir Option türünün bir değer içerip içermediğini kontrol etmek için .is_some() metodunu kullanın:

let maybe_score = Some(85);

if maybe_score.is_some() {
    println!("We have a score!");
}

Bir Option türünün boş olup olmadığını kontrol etmek için .is_none() metodunu kullanın:

if maybe_score.is_none() {
    println!("No score available");
}

Her iki metod da boolean değerler (true veya false) döndürür.

Kendin dene

use std::io;

fn main() {
    // Girdiyi oku
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let number: i32 = input.trim().parse().expect("Invalid input");
    
    // TODO: Kodunuzu aşağıya yazın
    // Sayının pozitif olup olmadığına bağlı olarak bir Option<i32> oluşturun
    
    // Option'ın Some olup olmadığını kontrol edin ve uygun mesajı yazdırın
    
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler