Menu
Coddy logo textTech

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: 30

Değ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: 25

Argümanların konumunu sayılar kullanarak belirtebilirsiniz:

let formatted = format!("{1} {0} {2}", "first", "second", "third");
println!("{}", formatted);
// Çıktı: second first third

Değ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"
challenge icon

Görev

Kolay

Bir 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);
}
quiz iconKendini test et

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