DEV Community

El Bruno for Microsoft Azure

Posted on • Originally published at on

#Rust πŸ¦€ – 🧡 String Interpolation in Rust (as usual, super fun πŸ˜„)

Hi !

Working with string is always a nice topic to learn. It’s nice to understand how a specific language process strings, sometimes small changes can have big performance improvements !

String Interpolation

So let’s start (via Wikipedia) with some basic concepts.

In computer programming, string interpolation (or variable interpolation, variable substitution, or variable expansion) is the process of evaluating a string literal containing one or more placeholders, yielding a result in which the placeholders are replaced with their corresponding values. It is a form of simple template processing[1] or, in formal terms, a form of quasi-quotation (or logic substitution interpretation). The placeholder may be a variable name, or in some languages an arbitrary expression, in either case evaluated in the current context.

String interpolation is an alternative to building string via concatenation, which requires repeated quoting and unquoting;[2] or substituting into a printf format string, where the variable is far from where it is used. Compare:

String Interpolation – Wikipedia

apples = 4
print("I have ${apples} apples.") # string interpolation
print("I have " + apples + " apples.") # string concatenation
print("I have %s apples.", apples) # format string

Enter fullscreen mode Exit fullscreen mode

String Interpolation in Rust

Rust does not have general string interpolation, but provides similar functionality via macros. Rust provides formatting via the std::fmt module, which is interfaced with through various macros such as format!, write!, and print!.

The hello world example may look like this one:

running the code<br>
fn main() {<br>
    println!("Hello {}!", "world");<br>
output <br>
Hello world!

These macros are converted into Rust source code at compile-time, whereby each argument interacts with a formatter. The formatter supports positional parameters, named parameters, argument types, defining various formatting traits, and capturing identifiers from the environment.

We can also work with implicit named arguments. I like this option, the code is easier to read.

At this moment, I think I’ll read more about the way Rust works with Strings. Mostly in the official Rust Documentation for Strings.

Happy coding!


El Bruno

More posts in my blog

Top comments (0)