Naučte se formátovat data řetězce pro dokonalou prezentaci.
Formátování řetězců je zásadním aspektem programování, protože vám umožňuje manipulovat a zobrazovat data čitelným a strukturovaným způsobem. Prezentaci dat můžete řídit formátováním řetězců pro lepší uživatelský zážitek.
Rust poskytuje výkonný a flexibilní mechanismus pro formátování řetězců, který vám umožňuje vytvářet jasný a stručný výstup, včetně čísel, data, času a funkcí pro zpracování chyb.
Základní formátování řetězců v Rust
Rust poskytuje funkce pro formátování řetězců s jinými Rez vestavěné typy.
Můžete použít formát! makro pro základní formátování řetězců v Rustu. The formát! makro poskytuje stručný a výkonný způsob vytváření formátovaných řetězců se zástupnými symboly uzavřenými ve složených závorkách.
fnhlavní() {
nechat jméno = "Alice";
nechat věk = 25;
nechat zpráva = formát!("Jmenuji se {} a je mi {} let.", jméno věk);
println!("{}", zpráva);
}
The název proměnná obsahuje řetězec a stáří proměnná obsahuje celé číslo. The
zpráva proměnná má formátovaný řetězec, který využívá formát! nahradit zástupné symboly odpovídajícími hodnotami, což vede k formátovacímu řetězci obsahujícímu název a stáří.The formát! makro podporuje různé specifikátory formátu, které vám umožňují ovládat výstup.
Zde je návod, jak určit počet desetinných míst pro čísla s plovoucí desetinnou čárkou, definovat šířku polí a zarovnat výstup.
fnhlavní() {
nechat pí = 3.14159;
nechat formatted_pi = formát!("Hodnota pí je přibližně {:.2}", pí);
println!("{}", formatted_pi); // vytiskne 3.14
}
The pí proměnná má hodnotu s pohyblivou řádovou čárkou; se specifikátorem formátu :.2, můžete instruovat formát! makro k zobrazení pí se dvěma desetinnými místy.
The formát! makro je jednou z mnoha metod formátování řetězců pomocí Rust. V závislosti na vašich požadavcích zvažte použití println! nebo napsat! makro pro formátovaný výstup do konzole nebo jiné výstupní proudy.
Formátování číselných hodnot
Rust také poskytuje funkce pro formátování různých číselných hodnot, od celých čísel po plovoucí a další číselné typy.
Obecně jsou specifikátory formátu základem formátování řetězců v Rustu a budete potřebovat správný specifikátor v závislosti na číselné hodnotě, kterou chcete formátovat.
Zde jsou některé ze specifikátorů formátu, které Rust poskytuje pro číselné hodnoty:
Číselný typ |
Formátovač |
Funkčnost |
---|---|---|
Celá čísla |
%d nebo %i |
Formátuje celá čísla včetně kladných a záporných hodnot. |
Čísla s plovoucí desetinnou čárkou |
%F |
Vhodné pro formátování čísel s plovoucí desetinnou čárkou, včetně integrálních a zlomkových částí. |
Exponenciální zápis |
%e nebo %E |
Formátuje čísla ve vědeckém zápisu (exponenciální forma). |
Osmičková reprezentace |
%Ó |
Formátuje celá čísla v osmičkovém vyjádření (základ 8). |
Hexadecimální zobrazení |
%x nebo %X |
Formátuje celá čísla v hexadecimálním vyjádření (základ 16). |
Navíc můžete zadat odsazení a zarovnání pro číselné hodnoty. Výplň přidává k formátované číselné hodnotě mezery nebo nuly, aby se dosáhlo požadované šířky. Odsazení pomáhá zarovnat hodnoty pro prezentaci v tabulkové formě nebo v jiných vizuálně organizovaných rozvrženích. Před hodnotou šířky můžete zadat výplňový znak, buď mezeru, nebo nulu.
Chcete-li hodnotu zarovnat doleva, použijte - vlajka. Chcete-li hodnotu zarovnat vpravo, vynechejte příznak nebo použijte příznak „0“ pro odsazení nuly.
fnhlavní() {
číslo = 42
formatted_number = "%10d" % číslo
tisknout (formátované_číslo)
}
Hodnota je zarovnána doprava v rámci šířky 10 znaků, což má za následek osm úvodních mezer před číslem.
Vlastní formátování řetězců v Rust
Vlastní formátování řetězce je důležité pro náročnější operace. Můžete vytvořit vlastní implementace formátování pro vaše typy s vestavěným Rust's std:: fmt modul.
The std:: fmt modul poskytuje vlastnosti pro formátování výstupu se širokou škálou možností pro přizpůsobení vzhledu dat během procesu převodu řetězců. The std:: fmt modul poskytuje a Zobrazit a Ladit vlastnost, která se hodí pro operace formátování řetězců.
Zobrazovací rys
The Zobrazit vlastnost pomáhá vytvářet pro člověka čitelný výstup tím, že definuje, jak by měl být objekt formátován pomocí {} zástupný symbol v řetězci. Můžete implementovat Zobrazit vlastnost pro vaše vlastní typy definováním metody tzv fmt to bere jako argument formátovač.
Formátovač poskytuje různé metody pro řízení výstupu formátu, např write_str a write_fmt metody.
použití std:: fmt;
// Definujte strukturu s názvem `Point`
strukturovatSměřovat {
X: i32,
y: i32,
}// Implementujte vlastnost `Display` pro `Point`
impl fmt:: Displej pro Směřovat {
fnfmt(&já, f: &mut fmt:: Formátovač<'_>> -> fmt::Výsledek {
// Naformátujte strukturu „Point“ jako „(x, y)“
napsat!(F, "({}, {})", já.X, já.y)
}
}fnhlavní() {
// Vytvoří novou instanci `Point`
nechat bod = bod { x: 5, y: 10 };
// Vytiskne strukturu `Point` pomocí formátování `Display`
println!("Podstata je: {}", směřovat);
}
The Směřovat struct implementuje Zobrazit vlastnost. Uvnitř fmt metoda, napsat! makro formáty a zapište požadovaný výstup do formátovače pomocí {} zástupný symbol.
Charakter ladění
The Ladit vlastnost je podobná jako Zobrazit kromě toho, že se zaměřuje na produkci výstupu vhodného pro ladění a vypořádání se s chybou účely. The Ladit vlastnost se používá hlavně s {:?} zástupný symbol.
Provádění Ladit vlastnost vašich vlastních typů je přímočará. The Ladit rys poskytuje výchozí implementaci založenou na Zobrazit vlastnost. Můžete však přepsat výchozí chování a poskytnout specializovanou reprezentaci ladění.
použití std:: fmt;
// Definujte strukturu s názvem `Person`
#[derive (Debug)]
strukturovatOsoba {
název: Tětiva,
stáří: u32,
}// Implementujte vlastnost `Display` pro `Person`
impl fmt:: Displej pro Osoba {
fnfmt(&já, f: &mut fmt:: Formátovač) -> fmt::Výsledek {
// Naformátujte strukturu `Person` jako lidsky čitelný řetězec
napsat!(F, "Jméno věk: {}", já.název, já.stáří)
}
}fnhlavní() {
// Vytvoří novou instanci `Person`
nechat osoba = Osoba {
název: Tětiva::z("Alice"),
stáří: 30,
};// Vytiskne strukturu `Person` pomocí formátování `Display`
println!("Zobrazit: {}", osoba);
// Vytiskne strukturu `Person` pomocí formátování `Debug`
println!("Ladění: {:?}", osoba);
}
Program odvozuje Ladit vlastnost pro Osoba strukturovat s #[derive (Debug)]. To automaticky vygeneruje implementaci na základě polí struct.
Makro println vytiskne reprezentaci ladění s Ladit formátovací zástupný symbol pro formátování výstupu pomocí Ladit implementace.
Rust má typový systém bohatý na funkce
Rustův bohatý typový systém hraje klíčovou roli při formátování řetězců. Využitím statického psaní a výkonných formátovacích knihoven Rust můžete psát bezpečný a efektivní kód a zároveň manipulovat s řetězci a úkoly formátování.
Typový systém zajišťuje bezpečnost při kompilaci a zabraňuje běžným chybám, od neshody typu po problémy se specifikátory formátu. Díky kombinaci typového systému Rust a jeho rozsáhlých možností formátování můžete s jistotou řešte problémy s formátováním řetězců a těžte z výkonu a bezpečnosti jazyka záruky.