Skip to content
Snippets Groups Projects
Unverified Commit be115a98 authored by Vanille-N's avatar Vanille-N
Browse files

relecture des strings

parent c2be7143
No related branches found
No related tags found
No related merge requests found
......@@ -244,30 +244,34 @@ fn add(x: i32, y: i32) -> i32 {
\newpage
\subsection{Chaînes de caractères}
\subsection{Chaînes de caractères (introduction)}
Les chaînes de caractères en Rust sont toutes encodés en \texttt{UTF-8}, et peuvent être sous trois formats :
Pour une explication plus poussée des différents types de chaînes de caractères,
voir \Cref{advancedStrings}.
Les chaînes de caractères en Rust sont toutes encodés en \texttt{UTF-8}, et
prennent principalement l'un des deux formats suivants :
\begin{itemize}
\item Chaîne de caractères contenue directement dans le binaire (type \texttt{\&str}).
\item Chaîne de caractères alloué dynamiquement (type \texttt{String}).
\item Point de vue non-modifiable d'une chaîne de caractères, nommé slice (type \texttt{\&str}).
\item chaîne de caractères allouée dynamiquement (type \texttt{String}).
\item référence non modifiable, nommée slice (type \texttt{\&str}).
\end{itemize}
\begin{lstlisting}[style=Rust, language=Rust]
fn main()
{
// Chaîne de caractères littérale.
fn main() {
// Une chaîne entre "" est une \&str
let hello_world: &str = "Hello World";
// Chaîne de caractères stockée dans le tas.
let hello_world: String = "Hello World".to_string();
// On peut créer une String à partir d'une \&str
let hello_world_string: String = hello_world.to_string();
// alternative équivalente : String::from(hello\_world)
// Un slice de l'enitèreté de la chaîne de caractère \textbf{hello\_world}.
let hello_world_slice: &str = &hello_world;
// Réciproquement on peut convertir une String en \&str
// soit tout entière :
let hello_world_slice: &str = &hello_world_string;
// soit partiellement, ici seulement les caractères 6 à 10 inclus.
let world_slice: &str = &hello_world_string[6..11];
// Un slice de 6 caractères de la chaîne de caractère \textbf{hello\_world}.
let world_slice: &str = &hello_world[6..11];
println!("Hi {}", world_slice); // "Hi World"
}
\end{lstlisting}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment