رشته ها (Strings)
رشته (String) یعنی متن. در راست دو مدل داریم: برش رشته ای (&str) و رشته رشدپذیر (String). برای شروع، با «رشته در راست» ساده پیش می رویم و مثال می زنیم.
انواع رشته در راست
&str یعنی متن ثابت. String یعنی متنی که می تواند تغییر کند. اول یک &str بسازیم.
fn main() {
let greeting: &str = "Hello";
println!("{}", greeting);
}
ساخت String
می توانی از to_string() یا String::from() استفاده کنی. هر دو رایج هستند.
fn main() {
let text1 = "Hello World".to_string();
println!("{}", text1);
}
fn main() {
let text2 = String::from("Hello World");
println!("{}", text2);
}
تغییر String
رشته String قابل تغییر است؛ باید با mut بسازی.
fn main() {
let mut greeting = String::from("Hello");
greeting.push_str(" World");
println!("{}", greeting);
}
fn main() {
let mut word = String::from("Hi");
word.push('!');
println!("{}", word);
}
ترکیب رشته ها
برای ترکیب چند رشته، format! خواناتر است.
fn main() {
let s1 = String::from("Hello");
let s2 = String::from("World!");
let s3 = String::from("What a beautiful day!");
let result = format!("{} {} {}", s1, s2, s3);
println!("{}", result);
}
نکته: با عملگر + فقط می توانی &str را به String اضافه کنی.
fn main() {
let s1 = String::from("Hello");
let s2 = String::from("World!");
let s3 = String::from("What a beautiful day!");
let result = s1 + " " + &s2 + " " + &s3;
println!("{}", result);
}
طول رشته
با .len() طول رشته را می گیری.
fn main() {
let name = String::from("John");
println!("Length: {}", name.len());
}
گام های تمرین
- یک &str بساز و چاپ کن.
- همان متن را به String تبدیل کن.
- با
push_strوpushمتن را تغییر بده. - دو روش ترکیب را امتحان کن.
- طول رشته را با
len()بگیر.
جمع بندی سریع
- &str ثابت است؛ String قابل تغییر است.
to_string()وString::from()برابرند.format!برای ترکیب خواناتر است.+فقط با&strکنارStringکار می کند..len()طول بایت ها را می دهد.
برای دیدن ارتباط دامنه با رشته ها، صفحه دامنه را مرور کن. سپس درباره مالکیت با مالکیت آشنا شو. اگر به مثال های بیشتر «رشته در راست» نیاز داری، همین صفحه را ذخیره کن.