Menu
Coddy logo textTech

Tuple Struct'lar

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

Normal struct'lar isimlendirilmiş alanlar kullanırken, Rust tuple struct'lar adı verilen başka bir tür sunar. Bunlar, her bir alanı ayrı ayrı isimlendirmenize gerek kalmadığında özel türler oluşturmak için daha kısa bir yol sağlar.

Bir tuple struct, yeni bir tür oluşturmanın avantajlarını bir demetin (tuple) basitliğiyle birleştirir. Bunu, struct anahtar kelimesinden sonra tür adını ve parantez içindeki alan türlerini kullanarak tanımlarsınız:

struct Color(i32, i32, i32);

Bu, RGB renk değerlerini temsil eden üç i32 değeri tutan bir Color türü oluşturur. Normal struct'ların aksine, alan adlarını belirtmezsiniz - değerlere tıpkı demetlerde (tuples) olduğu gibi konumlarına göre erişirsiniz.

Bir tuple struct örneği oluşturmak için, parantez içinde değerler sağlarsınız:

let red = Color(255, 0, 0);

Alan dizinini içeren nokta notasyonunu kullanarak tekil alanlara erişebilirsiniz: red.0 size ilk değeri verir, red.1 ikincisini ve bu şekilde devam eder.

challenge icon

Görev

Kolay

Üç girdi alacaksınız: bir kırmızı değer (tam sayı olarak), bir yeşil değer (tam sayı olarak) ve bir mavi değer (tam sayı olarak). RGB renk bileşenlerini temsil eden üç i32 değeri tutan bir Color demet yapısı (tuple struct) tanımlayın. Girdi değerlerini kullanarak bu demet yapısının bir örneğini oluşturun, ardından indeks notasyonunu kullanarak her bir renk bileşenine erişin ve yazdırın.

Gereksinimler:

  • Üç i32 alanına sahip bir Color demet yapısı (tuple struct) tanımlayın
  • İlk girdiyi okuyun ve kırmızı değer için i32 türüne dönüştürün
  • İkinci girdiyi okuyun ve yeşil değer için i32 türüne dönüştürün
  • Üçüncü girdiyi okuyun ve mavi değer için i32 türüne dönüştürün
  • Bu değerlerle Color demet yapısının bir örneğini oluşturun
  • İndeksleri (0, 1, 2) kullanarak nokta notasyonu ile her bir alana erişin ve renk bilgilerini aşağıda gösterilen tam formatta yazdırın

Girdi:

  • İlk satır: Tam sayı olarak kırmızı değer (örneğin, 255)
  • İkinci satır: Tam sayı olarak yeşil değer (örneğin, 128)
  • Üçüncü satır: Tam sayı olarak mavi değer (örneğin, 0)

Çıktı:

  • İlk satır: Red: [red_value]
  • İkinci satır: Green: [green_value]
  • Üçüncü satır: Blue: [blue_value]

Kopya kağıdı

Bir tuple struct, isimlendirilmiş alanları olmayan bir struct'tır. Yeni bir tür oluşturmanın avantajlarını bir demetin (tuple) basitliğiyle birleştirir.

Bir tuple struct'ı, struct anahtar kelimesini ve ardından tür adını ve parantez içindeki alan türlerini kullanarak tanımlayın:

struct Color(i32, i32, i32);

Parantez içinde değerler sağlayarak bir örnek (instance) oluşturun:

let red = Color(255, 0, 0);

Alan indeksi ile nokta notasyonunu kullanarak alanlara erişin:

red.0  // ilk değer
red.1  // ikinci değer
red.2  // üçüncü değer

Kendin dene

use std::io;

// TODO: Color demet yapınızı (tuple struct) burada tanımlayın

fn main() {
    // Kırmızı değerini oku
    let mut red_input = String::new();
    io::stdin().read_line(&mut red_input).expect("Failed to read line");
    let red: i32 = red_input.trim().parse().expect("Invalid input");
    
    // Yeşil değerini oku
    let mut green_input = String::new();
    io::stdin().read_line(&mut green_input).expect("Failed to read line");
    let green: i32 = green_input.trim().parse().expect("Invalid input");
    
    // Mavi değerini oku
    let mut blue_input = String::new();
    io::stdin().read_line(&mut blue_input).expect("Failed to read line");
    let blue: i32 = blue_input.trim().parse().expect("Invalid input");
    
    // TODO: Giriş değerlerini kullanarak bir Color demet yapısı örneği oluşturun
    
    // TODO: İndeks notasyonunu kullanarak her bir renk bileşenine erişin ve yazdırın
    // Format: Red: [değer], Green: [değer], Blue: [değer]
}
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