Bagaimana Pemformatan String Bekerja di Rust
Table of content:
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 fungsi numerik, tanggal, waktu, dan penanganan kesalahan.
Pemformatan String Dasar di Rust
Rust menyediakan fungsionalitas untuk memformat string dengan tipe bawaan Rust lainnya.
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.
Itu format! makro mendukung berbagai penentu format yang memungkinkan Anda untuk mengontrol output.
Berikut 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);
}
Itu pi variabel memegang nilai floating point; dengan penentu format :.2Anda 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 tergantung pada nilai numerik yang ingin Anda format.
Berikut adalah beberapa penentu format yang disediakan Rust untuk nilai numerik:
Tipe Numerik | Pemformat | Kegunaan |
---|---|---|
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. |
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.
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 jenis khusus Anda dengan menentukan 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;
struct Point {
x: i32,
y: i32,
}
impl fmt::Display for Point {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "({}, {})", self.x, self.y)
}
}
fn main() {
let point = Point { x: 5, y: 10 };
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.
Sifat Debug
Itu Debug sifatnya mirip dengan Menampilkan sifat, kecuali itu berfokus pada menghasilkan keluaran yang cocok untuk keperluan debugging dan penanganan kesalahan. 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;
#[derive(Debug)]
struct Person {
name: String,
age: u32,
}
impl fmt::Display for Person {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "Name: {}, Age: {}", self.name, self.age)
}
}
fn main() {
let person = Person {
name: String::from("Alice"),
age: 30,
};
println!("Display: {}", person);
println!("Debug: {:?}", person);
}
Program ini berasal dari Debug sifat untuk Orang struktur dengan #[derive(Debug)]. Ini secara otomatis menghasilkan implementasi berdasarkan bidang struct.
Makro println mencetak representasi debugging dengan Debug formatting 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 Rust dan pustaka pemformatan yang kuat, 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.