Özet - Dikdörtgen Eylemleri
Coddy'nin Rust Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 7 / 61.
Görev
Kolayİki alanı olan bir Rectangle struct'ı oluşturun: width (u32) ve height (u32).
Rectangle için aşağıdakileri içeren bir implementasyon bloğu ekleyin:
new—width: u32veheight: u32alan ve yeni birRectangledöndüren bir ilişkili fonksiyon (associated function)area—&selfalır ve alanıu32olarak döndürürscale—&mut selfve birfactor: u32alır, hem genişliği hem de yüksekliği faktörle çarpar
Üç girdi alacaksınız:
- İlk satır: genişlik (u32)
- İkinci satır: yükseklik (u32)
- Üçüncü satır: ölçeklendirme faktörü (u32)
Sağlanan boyutları kullanarak Rectangle::new ile değiştirilebilir (mutable) bir Rectangle oluşturun. Başlangıç alanını yazdırın, ardından dikdörtgeni verilen faktörle ölçeklendirin ve yeni alanı yazdırın.
Beklenen çıktı formatı:
{initial_area}
{scaled_area}Kendin dene
use std::io;
// TODO: Rectangle struct'ını burada tanımlayın
// TODO: Rectangle için şu özelliklere sahip uygulama bloğunu ekleyin:
// - new: genişlik ve yükseklik alan, Rectangle döndüren ilişkili fonksiyon
// - area: &self alan, u32 döndüren metot
// - scale: &mut self ve katsayı (factor) alan, genişlik ve yüksekliği çarpan metot
fn main() {
let mut input = String::new();
// Genişliği oku
io::stdin().read_line(&mut input).expect("Failed to read line");
let width: u32 = input.trim().parse().expect("Invalid number");
input.clear();
// Yüksekliği oku
io::stdin().read_line(&mut input).expect("Failed to read line");
let height: u32 = input.trim().parse().expect("Invalid number");
input.clear();
// Ölçeklendirme katsayısını oku
io::stdin().read_line(&mut input).expect("Failed to read line");
let factor: u32 = input.trim().parse().expect("Invalid number");
// TODO: Rectangle::new kullanarak değiştirilebilir (mutable) bir Rectangle oluşturun
// TODO: Başlangıç alanını yazdırın
// TODO: Dikdörtgeni katsayı ile ölçeklendirin
// TODO: Yeni alanı yazdırın
}Object Oriented Programming bölümündeki tüm dersler
1Metotlar ve Davranış
Uygulama Bloklarına GirişSelf ParametresiDeğiştirilebilir Metotlarİlişkili FonksiyonlarBirden Fazla Uygulama BloğuMetot ZincirlemeÖzet - Dikdörtgen Eylemleri4Proje: Sanal Evcil Hayvan
Evcil Hayvanı TanımlamaEvcil Hayvanı Besleme2Kapsülleme ve Modüller
Modül TemelleriPublic Anahtar KelimesiPrivate AlanlarGetter'larSetter'larÖzet - Güvenli Kasa5Generic Yapılar
Generic Struct'larGeneric MetotlarÇoklu Generic TürlerGeneric FonksiyonlarÖzet - Koordinat Noktası8Sınırlandırıcı Olarak Trait'ler
Trait Sınırlandırıcı SözdizimiÇoklu SınırlandırıcılarWhere CümleciğiTrait'ler ile Tip DöndürmeÖzet - Generic Yazıcı11Rust'ta Tasarım Kalıpları
Newtype KalıbıKompozisyonDrop Trait'iFrom ve IntoÖzet - Smart Pointer Mock3İleri Seviye Enum'lar
Veri İçeren Enum'larEnum MetotlarıVeri Varyantlarını EşlemeOption Enum'ına Yeniden BakışÖzet - Shape Enum6Trait Tanımlama
Trait Nedir?Traitleri UygulamaVarsayılan UygulamalarVarsayılanları Geçersiz KılmaParametreli TraitlerÖzet - Media Player