Data Structures

Rust Strings

Working with Strings

Rust strings use String for owned data, str for borrowed slices.

Introduction to Rust Strings

In Rust, strings are a crucial part of data handling. To manage strings effectively, Rust offers two primary types: String and &str. Both serve different purposes and are used based on ownership and mutability needs.

String: Owned String Type

The String type in Rust is a growable, mutable, owned string type. It is allocated on the heap and can store UTF-8 encoded text. This makes it suitable for scenarios where the string data needs to be modified or its size needs to change.

The String type is created using various methods like String::new(), to_string(), or from literals using String::from().

&str: Borrowed String Slice

The &str type, often called a string slice, is a reference to a sequence of UTF-8 encoded text. It is immutable and typically represents a view into a String or string literal. String slices are efficient as they do not allocate new memory; they borrow data.

String slices are commonly used when you want to pass string data without taking ownership.

Interoperability Between String and &str

Rust provides seamless interoperability between String and &str. You can convert a String to a &str easily using the as_str() method or by dereferencing. Conversely, you can create a String from a &str using to_string() or String::from().

Common Operations on Strings

Rust provides various methods to manipulate strings. These include operations to concatenate, replace, and iterate over characters. Below are some common operations:

  • push_str() and push() for appending.
  • replace() for replacing substrings.
  • split() for splitting strings based on delimiters.
Previous
HashMaps