Rust

Rust — رشته ها (Strings)

آخرین بروزرسانی: 1404/08/14

رشته ها (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());
}

مشاهده در ادیتور

گام های تمرین

  1. یک &str بساز و چاپ کن.
  2. همان متن را به String تبدیل کن.
  3. با push_str و push متن را تغییر بده.
  4. دو روش ترکیب را امتحان کن.
  5. طول رشته را با len() بگیر.

جمع بندی سریع

  • &str ثابت است؛ String قابل تغییر است.
  • to_string() و String::from() برابرند.
  • format! برای ترکیب خواناتر است.
  • + فقط با &str کنار String کار می کند.
  • .len() طول بایت ها را می دهد.

برای دیدن ارتباط دامنه با رشته ها، صفحه دامنه را مرور کن. سپس درباره مالکیت با مالکیت آشنا شو. اگر به مثال های بیشتر «رشته در راست» نیاز داری، همین صفحه را ذخیره کن.