لهجه اپلیکیشن نویسی Rust از یک نوع داده به اسم tuple تامین می نماید که نوعی متغیر ترکیبی به حساب می آید که دارنده نوع مشابهی در گویش نرم افزار نویسی جاوا وجود ندارد. قطعه کد تحت مثال ای از به کارگیری از tuple در اپ نویسی به گویش Rust را به شما اکران میدهد:
fn main() {
let myTuple = (\"Sum\", 10, 5);
let (x, y) = myTuple ;
println!(\"The {} is: {}\", x, y + z);
}
دراین قطعه کد شما میتوانید ببینید که متغیر myTuple با به کارگیری از پرانتزهایی که مشتمل بر سه مقدار می باشند تعریف و تمجید گردیدهاست کهاین سه مقدار دربرگیرنده یک فن و دوتا درست میباشند. این دقیقا نشانه دهنده نوع داده tuple میباشد.
همان گونه که در خط آتی این قطعه کد میتوانید ملاحظه کنید که در نرم افزار نویسی به لهجه Rust این قابلیت برای شما وجود دارااست که مقادیر باطن tuple را به متغیرهای اسکالر تجزیه فرمایید که برای این فعالیت می اقتدار از واژه کلیدی let بهره برد که مقادیر باطن tuple شمارا به سه متغیر X، y و z تخصیص میدهد.
خلال این شما میتوانید در اپلیکیشن نویسی به گویش Rust به اعضای tuple خویش از روش ایندکس آنان دسترسی داشته باشید. برای مثال tup.0 اولی مقدار مو جود در tuple که یک حرفه میباشد را برای شما برمی گرداند.
traits و جنریک ها در نرم افزار نویسی به گویش Rust
در اپ نویسی به لهجه Rust مفهومی با اسم traits وجود دارااست که تا حدود متعددی مشابه به اینترفیس های fine-grained در لهجه اپلیکیشن نویسی جاوا میباشد. آن ها در واقع تمجید می نمایند که یک نوع داده چه خصوصیت هایی را با بقیه اشکال داده به اشتراک میگذارد. به عبارت دیگر می قدرت اعلامکرد traits به عبارتی کارایی انتزاعی مشترک در میان گونه های داده متفاوت به شمار میایند.
جنریک ها در اپ نویسی به لهجه Rust تشابه متعددی به جنریک های جاوا دارا هستند که از یک براکت برای نشانی دهی اشکال داده روی هم رفته و بر محور خصوصیت هایی که به اشتراک گذارده اند به کارگیری می نمایند. در قطعه کد پایین کوشش کرده ایم تا این مفاهیم را به صورت خلاصه به شما توضیح دهیم:
pub trait Summary {
fn summarize(&self) -> String;
}
pub struct NewsArticle {
pub headline: String,
pub location: String,
pub author: String,
pub content: String,
}
impl Summary for NewsArticle {
fn summarize(&self) -> String {
format!(\"{}, by {} ({})\", self.headline, self.author, self.location)
}
}
pub struct Tweet {
pub username: String,
pub content: String,
pub reply: bool,
pub retweet: bool,
}
impl Summary for Tweet {
fn summarize(&self) -> String {
format!(\"{}: {}\", self.username, self.content)
}
}
fn main() {
let tweet = Tweet {
username: String::from(\"dog_post\"),
content: String::from(\"A Shih Tzu is smaller than a Lurcher\",
),
reply: false,
retweet: false,
};
println!(\"1 new tweet: {}\", tweet.summarize());
}
در این مکان واژه و کلمه کلیدی trait برای تمجید یک خصوصیت Summary به کار گیری میگردد که برای هریک از گونه های داده به طور مستقل طراحی میگردد که متغیرهای مرتبط با آنان مشتمل بر NewsArticle و Tweet می باشند که با به کار گیری از واژه کلیدی impl طراحی گردیده اند. همان گونه که مشاهده میکنید این شیوه همانندی متعددی به اینترفیس ها در گویش نرم افزار نویسی جاوا داراست به جز این گزینه که در گویش جاوا یک اینترفیس به مکان تمجید تکه ای متدها تمام سطح کلاس را تعریف و تمجید می نماید.