Ana içeriğe geç
Modül 1 · Ders 2 ders 2Kurstaki 2/14~10 min
Modül dersleri (2/2)

İlkel Türler

Rust statik olarak yazılan bir dildir; bu, derleme zamanında tüm değişkenlerin türünü bilmesi gerektiği anlamına gelir. Genellikle derleyici, atanan değere göre türü anlayabilir, ancak bazen bunu manuel olarak belirtmek gerekli veya yararlı olabilir.

Rust'taki temel türler iki ana kategoriye ayrılır: skalerler (tek değer) ve bileşikler (değer grubu).

Skaler Tipler

Skaler türler tek bir değeri temsil eder. Rust'un dört temel skaler türü vardır:

  1. Tam sayılar: Tam sayılar. İmzalı (i8, i16, i32, i64, i128, isize) veya imzasız (u8, u16,) olabilirler. u32, u64, u128, usize). Varsayılan tür i32'dir.
  2. Kayan nokta: Ondalık basamaklı sayılar. Bunlar f32 veya f64 (çift duyarlıklı, varsayılan) olabilir.
  3. Boolean: Mantıksal gerçeği true veya false (bool yazın) ile temsil edin.
  4. Karakterler: Tek tırnak içine alınmış tek bir Unicode skaler değeri (char türü), örneğin 'a', 'ℤ' veya emoji '😻'.

Açık tür açıklaması örneği:

Rust
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';

Bileşik Çeşitleri

Bileşik türler birden fazla değeri tek bir türde gruplayabilir. Pasın iki ana ilkel bileşik türü vardır:

Tuple'lar

Bir demet, farklı türdeki değerleri sabit boyutlu bir koleksiyonda gruplandırır:

Rust
let person: (String, i32) = (String::from("Alice"), 30);

// Destructuring to extract values
let (name, age) = person;

// Direct access with index using dot (.)
let name_direct = person.0;
let age_direct = person.1;

Diziler (Sabit boyutlu listeler)

Bir dizi, aynı türdeki birden çok öğeyi yığında depolanan sabit boyutlu bir koleksiyonda gruplandırır:

Rust
let numbers = [1, 2, 3, 4, 5]; // Inferred as [i32; 5]
let first = numbers[0]; // Access by index
let third = numbers[2];

Dizi sınırları dışındaki bir dizine erişmeye çalışırsanız (örneğin, numbers[10]), Rust, yetkisiz bellek erişimine izin vermek yerine çalışma zamanında hemen çöker (panikler).

Karşılaştırmak

ÖzellikTupleDizi
Öğe türleriFarklı olabilirAynı olmalı
BoyutSabitSabit
ErişimNokta aracılığıyla dizin (ör. .0)Köşeli parantezler (örneğin, [0])

Kendin dene

Egzersiz#rust.m1.l2.e1
Denemeler: 0Yükleniyor…

30 yaşını (tam sayı) ve 95,5 puanını (değişken) içeren istatistik adlı bir demet bildirin. Daha sonra, dizinin ikinci elemanına indeksini kullanarak doğrudan erişerek skoru ekrana yazdırın.

Düzenleyici yükleniyor…
İpucu göster

'let stats = (30, 95.5);' ile tuple'ı oluşturun. 'println!' makrosunun içindeki 'stats.1'i kullanarak ikinci öğeye erişin.

3 denemeden sonra çözüm mevcut

Egzersiz#rust.m1.l2.e2
Denemeler: 0Yükleniyor…

1'den 5'e kadar tamsayı değerlerini içeren sayılar adlı bir dizi bildirin. Dizinin üçüncü elemanını (indeks 2) println! kullanarak ekrana yazdırın.

Düzenleyici yükleniyor…
İpucu göster

Diziyi 'let numaraları = [1, 2, 3, 4, 5];' ile bildirin ve üçüncü öğeye '[2]' ile indeksleyerek erişin.

3 denemeden sonra çözüm mevcut

Egzersiz#rust.m1.l2.e3
Denemeler: 0Yükleniyor…

'let point = (10, 20);' tuple'ı göz önüne alındığında, değerleri 'x' ve 'y' adlı iki değişkene çıkarmak için yapıyı bozmayı kullanın. Daha sonra 'x' ve 'y'nin toplamını yazdırın.

Düzenleyici yükleniyor…
İpucu göster

Tuple'ın yapısını bozmak için 'let (x, y) = point;' sözdizimini kullanın ve ardından 'println!' içindeki değişkenleri toplayın.

3 denemeden sonra çözüm mevcut