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:
- 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üri32'dir. - Kayan nokta: Ondalık basamaklı sayılar. Bunlar
f32veyaf64(çift duyarlıklı, varsayılan) olabilir. - Boolean: Mantıksal gerçeği
trueveyafalse(boolyazın) ile temsil edin. - Karakterler: Tek tırnak içine alınmış tek bir Unicode skaler değeri (
chartürü), örneğin'a','ℤ'veya emoji'😻'.
Açık tür açıklaması örneği:
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:
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:
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
| Özellik | Tuple | Dizi |
|---|---|---|
| Öğe türleri | Farklı olabilir | Aynı olmalı |
| Boyut | Sabit | Sabit |
| Erişim | Nokta aracılığıyla dizin (ör. .0) | Köşeli parantezler (örneğin, [0]) |
Kendin dene
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.
İ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
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.
İ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
'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.
İ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