Makrolar
Makrolar, derleme sırasında Rust koduna genişletilir ve değişken sayıda argüman alabilir. Sonunda !
işaretiyle ayırt edilirler. Rust standart kütüphanesi çeşitli yararlı makrolar içerir.
println!(format, ..)
,std::fmt
’de açıklanan biçimi uygulayarak standart çıktıya bir satır yazdırır.format!(format, ..)
tıpkıprintln!
gibi işler ancak sonucu bir dize (string) olarak geri döndürür.dbg!(expression)
ifadenin değerini kayıt tutar (loggging) ve onu geri döndürür.todo!()
kodun bir kısmını henüz uygulanmamış (not-yet-implemented) olarak işaretler. Eğer yürütülürse (execute), paniğe neden olur.
fn factorial(n: u32) -> u32 { let mut product = 1; for i in 1..=n { product *= dbg!(i); } product } fn fizzbuzz(n: u32) -> u32 { todo!() } fn main() { let n = 4; println!("{n}! = {}", factorial(n)); }
This slide should take about 2 minutes.
Bu bölümden çıkarılacak sonuç, bu ortak kolaylıkların mevcut olduğu ve bunların nasıl kullanılacağıdır. Bunların neden makro olarak tanımlandığı ve neye genişledikleri özellikle kritik değildir.
Kurs, makroların tanımlanmasını (define) kapsamaz, ancak daha sonraki bir bölümde türetilmiş makroların kullanımı anlatılacaktır.
Daha Fazlasını Keşfedin
Standart kütüphane tarafından sağlanan birçok başka kullanışlı makro vardır. Öğrenciler daha fazlasını öğrenmek isterse onlarla paylaşabileceğiniz bazı diğer örnekler:
assert!
ve ilgili makrolar, kodunuza doğrulamalar (assertions) eklemek için kullanılabilir. Bu makrolar, test yazımında yoğun şekilde kullanılır.unreachable!
, hiçbir zaman ulaşılmaması gereken bir kontrol akışı dalını işaretlemek için kullanılır.eprintln!
stderr’e yazdırmanıza olanak tanır.