format! Makrosu
Coddy'nin Rust Journey'sinin Fundamentals bölümünün bir parçası — ders 70 / 75.
Rust'ta format! makrosu, metni değişkenlerle okunabilir ve özelleştirilebilir bir şekilde birleştirmenize olanak tanır. Bu makro println! makrosuna benzer, ancak çıktıyı konsola yazdırmak yerine, bir değişkende saklayabileceğiniz veya diğer işlemlerde kullanabileceğiniz biçimlendirilmiş bir dize döndürür.
En basit söz dizimi isimlendirilmemiş yer tutucular {} kullanır:
let name = "Alice";
let age = 30;
let formatted = format!("Name: {}, Age: {}", name, age);
println!("{}", formatted);
// Çıktı: Name: Alice, Age: 30Değişken isimlerini doğrudan yer tutucularda kullanabilirsiniz:
let name = "Bob";
let age = 25;
let formatted = format!("Name: {name}, Age: {age}");
println!("{}", formatted);
// Çıktı: Name: Bob, Age: 25Argümanların konumunu sayılar kullanarak belirtebilirsiniz:
let formatted = format!("{1} {0} {2}", "first", "second", "third");
println!("{}", formatted);
// Çıktı: second first thirdDeğerlerin nasıl biçimlendirileceğini biçim belirleyicileri kullanarak kontrol edebilirsiniz:
// Sayı biçimlendirme
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi);
// "3.14"
// Sıfırlarla doldurma
let padded = format!("{:0>5}", "123");
// "00123"Görev
KolayBir isim ve doğum yılından şu kesin kuralları kullanarak gizli bir kod oluşturan bir program oluşturun:
- İsmin ilk harfini alır ve büyük harf yapar
- Yılın rakamlarını tersine çevirir
- İlk harfi "⭐" sembolleriyle sarar
- Sarılmış harf ile ters çevrilmiş yıl arasına bir "-" ekler
Bir dizeyi tersine çevirmek için şu kodu kullanın: .to_string().chars().rev().collect::<String>()
Kopya kağıdı
format! makrosu, metni değişkenlerle birleştirir ve bir değişkende saklanabilen biçimlendirilmiş bir dize döndürür.
İsimsiz yer tutucularla temel sözdizimi:
let name = "Alice";
let age = 30;
let formatted = format!("Name: {}, Age: {}", name, age);Değişken isimlerini doğrudan yer tutucularda kullanma:
let name = "Bob";
let age = 25;
let formatted = format!("Name: {name}, Age: {age}");Argüman konumlarını sayılarla belirtme:
let formatted = format!("{1} {0} {2}", "first", "second", "third");
// Output: "second first third"Çıktıyı kontrol etmek için biçim belirleyiciler:
// Number formatting
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi); // "3.14"
// Padding with zeros
let padded = format!("{:0>5}", "123"); // "00123"Bir dizeyi tersine çevirmek için: .to_string().chars().rev().collect::<String>()
Kendin dene
use std::io;
fn main() {
let mut input_name = String::new();
let mut input_year = String::new();
io::stdin().read_line(&mut input_name).unwrap();
io::stdin().read_line(&mut input_year).unwrap();
let name = input_name.trim();
let year: i32 = input_year.trim().parse().unwrap();
// Kodunuzu aşağıya yazın
let secret_code =
println!("{}", secret_code);
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Fundamentals bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Temel Girdi-Çıktı
Konsola YazdırmaKullanıcı Girdisi OkumaÖzet - 120'ye KadarÖzet - Doğru veya Yanlış5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 311Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriBirden Fazla Dönüş DeğeriÖzet - Sigma FonksiyonuÖzet - Doğrulama Fonksiyonu14Diziler Üzerinde Gezinme
Range RehberiGelişmiş For DöngüsüDöngü İçinde Ödünç AlmaYaygın Dizi İşlemleri3Değişkenler Bölüm 2
Tür Bildirimiİsimlendirme KurallarıTür ÇıkarımıÖzet - Değişkenleri BaşlatmaTür Dönüştürme9Döngüler
Seriler Üzerinde ForWhile DöngüsüBreakContinueİç İçe DöngülerDöngü EtiketleriSonsuz DöngüÖzet - Dinamik Girdi