Bagaimana Pemformatan String Bekerja di Rust

Bagaimana Pemformatan String Bekerja di Rust
Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Pemformatan string adalah aspek penting dari pemrograman karena memungkinkan Anda memanipulasi dan menampilkan data dengan cara yang mudah dibaca dan terstruktur. Anda dapat mengontrol presentasi data dengan memformat string untuk pengalaman pengguna yang lebih baik.





Rust menyediakan mekanisme yang kuat dan fleksibel untuk pemformatan string yang memberdayakan Anda untuk membuat keluaran yang jelas dan ringkas, termasuk fungsionalitas numerik, tanggal, waktu, dan penanganan kesalahan.





GUNAKAN VIDEO HARI INI GULIR UNTUK LANJUTKAN DENGAN KONTEN

Pemformatan String Dasar di Rust

Rust menyediakan fungsionalitas untuk memformat string dengan yang lain Jenis bawaan karat .





Anda dapat menggunakan format! makro untuk pemformatan string dasar di Rust. Itu format! makro menyediakan cara yang ringkas dan kuat untuk membuat string yang diformat dengan placeholder yang diapit oleh kurung kurawal.

 fn main() { 
    let name = "Alice";
    let age = 25;
    let message = format!("My name is {} and I am {} years old.", name, age);
    println!("{}", message);
}

Itu nama variabel memegang string, dan usia variabel memegang bilangan bulat. Itu pesan variabel memiliki string yang diformat yang memanfaatkan format! untuk mengganti placeholder dengan nilai yang sesuai, menghasilkan string format yang berisi nama Dan usia .



  hasil pemformatan string dasar

Itu format! makro mendukung berbagai penentu format yang memungkinkan Anda untuk mengontrol output.

bagaimana cara menghapus pencarian google

Berikut ini cara menentukan jumlah tempat desimal untuk angka titik-mengambang, menentukan lebar bidang, dan menyelaraskan hasilnya.





 fn main() { 
    let pi = 3.14159;
    let formatted_pi = format!("The value of pi is approximately {:.2}", pi);
    println!("{}", formatted_pi); // prints 3.14
}

Itu pi variabel memegang nilai floating point; dengan penentu format :.2 , Anda dapat menginstruksikan format! makro untuk ditampilkan pi dengan dua tempat desimal.

Itu format! makro adalah salah satu dari banyak metode pemformatan string dengan Rust. Bergantung pada kebutuhan Anda, pertimbangkan untuk menggunakan cetak! atau menulis! makro untuk keluaran yang diformat ke konsol atau aliran keluaran lainnya.





Memformat Nilai Numerik

Rust juga menyediakan fungsionalitas untuk memformat berbagai nilai numerik, dari bilangan bulat hingga float dan tipe numerik lainnya.

Secara umum, penentu format adalah dasar dari pemformatan string di Rust, dan Anda memerlukan penentu yang tepat bergantung pada nilai numerik yang ingin Anda format.

Berikut adalah beberapa penentu format yang disediakan Rust untuk nilai numerik:

Bilangan bulat

%d atau %i

Memformat bilangan bulat termasuk nilai positif dan negatif.

Angka titik-mengambang

%F

Cocok untuk memformat angka floating-point, termasuk bagian integral dan pecahan.

cara memulai uji coba premium spotify

notasi eksponensial

%e atau %E

Memformat angka dalam notasi ilmiah (bentuk eksponensial).

Representasi oktal

%HAI

Memformat bilangan bulat dalam representasi oktal (basis 8).

Representasi heksadesimal

%x atau %X

Memformat bilangan bulat dalam representasi heksadesimal (basis 16).

Selain itu, Anda dapat menentukan pengisi dan perataan untuk nilai numerik. Padding menambahkan spasi atau nol ke nilai numerik yang diformat untuk mencapai lebar yang diinginkan. Pengisi membantu menyelaraskan nilai untuk presentasi dalam bentuk tabular atau tata letak yang ditata secara visual lainnya. Sebelum nilai lebar, Anda dapat menentukan karakter pengisi, baik spasi atau nol.

xbox one tidak akan terhubung ke router

Untuk meratakan kiri nilai, gunakan - bendera. Untuk menyelaraskan nilai, hilangkan bendera atau gunakan bendera '0' untuk padding nol.

 fn main() { 
    number = 42
    formatted_number = "%10d" % number
    print(formatted_number)
}

Nilainya rata kanan dengan lebar 10 karakter, menghasilkan delapan spasi di awal sebelum angka.

Pemformatan String Kustom di Rust

Pemformatan string khusus penting untuk operasi yang lebih menuntut. Anda dapat membuat implementasi pemformatan khusus untuk tipe Anda dengan bawaan Rust std::fmt modul.

Itu std::fmt modul memberikan ciri-ciri untuk memformat output dengan berbagai opsi untuk menyesuaikan tampilan data selama proses konversi string. Itu std::fmt modul menyediakan a Menampilkan Dan Debug sifat yang berguna untuk operasi pemformatan string.

Sifat Tampilan

Itu Menampilkan sifat membantu menghasilkan keluaran yang dapat dibaca manusia dengan menentukan bagaimana suatu objek harus diformat dengan {} placeholder dalam string. Anda dapat menerapkan Menampilkan sifat untuk Anda jenis kustom dengan mendefinisikan metode yang disebut fmt yang mengambil formatter sebagai argumen.

Pemformat menyediakan berbagai metode untuk mengontrol output format, seperti tulis_str Dan tulis_fmt metode.

 use std::fmt; 

// Define a struct named `Point`
struct Point {
    x: i32,
    y: i32,
}

// Implement the `Display` trait for `Point`
impl fmt::Display for Point {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        // Format the `Point` struct as "(x, y)"
        write!(f, "({}, {})", self.x, self.y)
    }
}

fn main() {
    // Create a new `Point` instance
    let point = Point { x: 5, y: 10 };

    // Print the `Point` struct using the `Display` formatting
    println!("The point is: {}", point);
}

Itu Titik struct mengimplementasikan Menampilkan sifat. Di dalam fmt metode, yang menulis! format makro dan tulis keluaran yang diinginkan ke pemformat dengan {} placeholder.

  hasil pemformatan string khusus

Sifat Debug

Itu Debug sifatnya mirip dengan Menampilkan sifat, kecuali berfokus pada menghasilkan keluaran yang cocok untuk debugging dan penanganan kesalahan tujuan. Itu Debug sifat ini terutama digunakan dengan {:?} placeholder.

Menerapkan Debug sifat pada jenis kustom Anda sangat mudah. Itu Debug sifat menyediakan implementasi default berdasarkan Menampilkan sifat. Namun, Anda dapat mengganti perilaku default untuk menyediakan representasi debugging khusus.

 use std::fmt; 

// Define a struct named `Person`
#[derive(Debug)]
struct Person {
    name: String,
    age: u32,
}

// Implement the `Display` trait for `Person`
impl fmt::Display for Person {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        // Format the `Person` struct as a human-readable string
        write!(f, "Name: {}, Age: {}", self.name, self.age)
    }
}

fn main() {
    // Create a new `Person` instance
    let person = Person {
        name: String::from("Alice"),
        age: 30,
    };

    // Print the `Person` struct using the `Display` formatting
    println!("Display: {}", person);

    // Print the `Person` struct using the `Debug` formatting
    println!("Debug: {:?}", person);
}

Program ini berasal dari Debug sifat untuk Orang struktur dengan #[turunkan(Debug)] . Ini secara otomatis menghasilkan implementasi berdasarkan bidang struct.

Makro println mencetak representasi debugging dengan Debug pemformatan placeholder untuk memformat output menggunakan Debug penerapan.

Karat Memiliki Sistem Tipe Kaya Fitur

Sistem tipe kaya Rust memainkan peran penting dalam pemformatan string. Dengan memanfaatkan pengetikan statis dan pustaka pemformatan yang kuat dari Rust, Anda dapat menulis kode yang aman dan efisien sambil menangani manipulasi string dan tugas pemformatan.

Sistem tipe memastikan keamanan waktu kompilasi dan mencegah kesalahan umum, mulai dari ketidakcocokan tipe hingga masalah penentu format. Dengan kombinasi sistem tipe Rust dan kemampuan pemformatannya yang ekstensif, Anda dapat mengatasi tantangan pemformatan string dengan percaya diri dan mendapatkan keuntungan dari kinerja bahasa dan jaminan keamanan.