Jimmy
Jimmy

Reputation: 37081

What's the preferred way to create a String from a literal?

Is there a performance or stylistic reason to prefer one of the following forms for creating a String from a literal in Rust?

"hello world".to_string()
format!("hello world")
String::from("hello world")

Upvotes: 3

Views: 820

Answers (1)

oli_obk
oli_obk

Reputation: 31253

The idiomatic way in the Rust compiler internals and thus Rust in general is to use to_string. It is done this way in the compiler and backed by Alex Crichton in three pull requests (1, 2, 3) that tried to change this.

The argument is that to_string most clearly defines what you want. Performance-wise both to_string and format! are slower than String::from. But once we get impl specialization there's a good chance that they will perform exactly the same.


That said, clippy lints against "abc".to_string() and suggests "abc".to_owned().

Upvotes: 5

Related Questions