I found out that {:?}
prints an entire array in Rust. I want to know what is it called and how exactly it works. Is it only limited to printing arrays or could it also be used elsewhere for other purposes?
String formatting uses a process of string interpolation (variable substitution) to evaluate a string literal containing one or more placeholders, yielding a result in which the placeholders are replaced with their corresponding values.
Macro std::formatCreates a String using interpolation of runtime expressions. The first argument format! receives is a format string. This must be a string literal. The power of the formatting string is in the {} s contained.
Short answer: no, not that type of interpolation. There is a Rust RFC for this.
Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH), Fe(OH)3), and is typically associated with the corrosion of refined iron.
This is explained (along with the rest of the formatting syntax) in the std::fmt
documentation.
{...}
surrounds all formatting directives. :
separates the name or ordinal of the thing being formatted (which in this case is omitted, and thus means "the next thing") from the formatting options. The ?
is a formatting option that triggers the use of the std::fmt::Debug
implementation of the thing being formatted, as opposed to the default Display
trait, or one of the other traits (like UpperHex
or Octal
).
Thus, {:?}
formats the "next" value passed to a formatting macro, and supports anything that implements Debug
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With