دنیای سنتی سلام (در RUST)
معرفی
اگر به تازگی با Rust آشنا شده اید و اینجا هستید تا نحوه نوشتن “Hello World” را بدانید، به شما توصیه می کنم ابتدا Simplest Hello World Ever (در RUST) را بررسی کنید و سپس این مورد را بررسی کنید. حتی اگر در زمینه برنامه نویسی تازه کار هستید، لطفاً مقاله فوق را تا آخر بررسی کنید نصب (Rustup) بخشی به این دلیل است که کامپایلر rust را نصب می کند که برای این مقاله نیز ضروری است.
کمی در مورد من…
سلام خواننده 🖐. من چیرانجیوی تیرونگاری هستم و یک مهندس نرم افزار هستم. می توانید اطلاعات بیشتری در مورد من در لینکدین و توییتر. همچنین، اگر به Rust، DevOps و به طور کلی به فناوری علاقه دارید، در کانال یوتیوب من مشترک شوید.
متن نوشته
خوب پس اکنون که همه چیز را (فقط کامپایلر زنگ) راه اندازی کردیم، می توانیم شروع کنیم.
سنتی که از قدیم الایام هنگام یادگیری یک زبان برنامه نویسی جدید دنبال می شود، نوشتن الف است سلام دنیا برنامه ای که متن “Hello World” را در کنسول یا ترمینال از جایی که آن را اجرا کرده اید چاپ می کند.
این معمولاً ساده ترین برنامه برای نوشتن به هر زبانی است، همانطور که در مورد Rust وجود دارد. بنابراین، اجازه دهید این کار را انجام دهیم.
سلام دنیا
برای نوشتن یک برنامه به یک فایل نیاز داریم. و نام این فایل باید به پایان برسد .rs
پسوند که نشان دهنده فایل rust است. ما می توانیم به روش های مختلف فایل ایجاد کنیم. اما، به عنوان یک برنامه نویس (جدید یا با تجربه)، استفاده از دستورات ترمینال حق اصلی ماست. دستور ایجاد یک فایل است touch <file-name>
. هر چی میخوای اسمشو بذار من قصد دارم آن را نام ببرم هی.rs . بنابراین، دستور واقعی که باید استفاده کنم این است touch hey.rs
. این فایل را ایجاد می کند و می توانید آن را با استفاده از ویرایشگر کد مورد علاقه خود باز کنید (کاربران vim/neovim، من شما را تماشا می کنم 😅).
کارکرد
در مقالات آینده به تفصیل درباره توابع بحث خواهیم کرد، اما بیایید بفهمیم که چه توابعی در سطح پایه هستند. کارکرد حاوی مقداری کد است و ما می توانیم آن کد را با فراخوانی این توابع اجرا کنیم. به عبارت دیگر، هنگامی که ما یک تابع را فراخوانی می کنیم، به این معنی است که ما در حال اجرای کدی هستیم که در داخل آن تابع زندگی می کند. توابع مختلف می توانند نام های مختلفی داشته باشند.
اما چگونه یک تابع را با نام تعریف کنیم؟ داخلش کد بنویسم؟ و صداش کن
تعریف
برای تعریف تابع باید از کلمه کلیدی استفاده کنیم fn
که نشان دهنده تابع است و نام را با استفاده از نحو مشخص می کنیم fn <function-name>() {}
. در مورد پرانتز خواهیم دید "()"
بعداً در مقالهای دیگر، اما به این صورت است که یک تابع را تعریف میکنیم.
بیایید یک تابع با نام شما تعریف کنیم. با نام خودم “چیرانجیوی” این کار را انجام خواهم داد
fn chiranjeevi() {}
کد
برای هدف این مقاله، ما فقط باید کدنویسی نحوه چاپ “Hello World” را بدانیم. بنابراین، بیایید این کار را انجام دهیم.
برای چاپ هر چیزی در ترمینال، ساده ترین راه استفاده از آن است print!()
یا println!()
ماکروها بعداً خواهیم دید که ماکروها چیست و چه تفاوتی با توابع دارند. اما، در حال حاضر، چیزی که باید بدانیم این است که هر آنچه را که در داخل پرانتز می دهیم ()
برای print!
و println!
در ترمینال چاپ می شود. تنها تفاوت این است که println!
مکان نما را به خط بعدی منتقل می کند و print!
آن را در همان خط نگه می دارد.
حالا بیایید سعی کنیم «Hello World» را با استفاده از آن چاپ کنیم print!
👇
fn chiranjeevi() {
print!("Hello World");
}
شما ممکن است آن نقل قول ها را مشاهده کرده باشید "
داخل پرانتز ()
و پیام ما را احاطه کرده است. بنابراین، این روشی است که ما انجام می دهیم تا رشته های استاتیک (که نیازی به تغییر در هر زمان اجرا نمی شود) را ارسال کنیم (هشدار اسپویلر: slice / literal).
و خطوط با نیم دونقطه خاتمه می یابند ;
.
فراخوانی تابع
برای انجام کاری که انتظار داریم عملکردمان انجام دهد، یعنی چاپ “Hello World”، باید آن را فراخوانی کنیم. وگرنه هرچقدر هم که توابع بنویسی فایده ای نداره و هیچ کاری نمیکنه مگر اینکه صداش کنی. ما توابع را با نحو فراخوانی می کنیم <function-name>();
. بنابراین، برای فراخوانی تابع فوق، باید انجام دهیم chiranjeevi()
.
اما، کجا آن را انجام دهیم؟ حالا ببینیم👇
اصلی
اصلی همچنین تابعی است که نام آن به طور اتفاقی اصلی است که حاوی کدی است که باید هنگام شروع اجرای برنامه اجرا شود. این کد داخل اصلی می تواند توابع دیگری را نیز فراخوانی کند که کدهای دیگر و غیره را اجرا می کند. اما نکته مهم در اینجا این است که تابع اصلی جایی است که اجرای کد با شروع اجرای یک برنامه شروع می شود.
هر برنامه “Hello World” که اکنون می خواهیم بنویسیم نیز یک برنامه (برنامه) است. بنابراین، باید یک عملکرد اصلی داشته باشد.
اکنون ممکن است متوجه شده باشید که باید تابع ایجاد شده در بالا را در main فراخوانی کنیم. بیا این کار را انجا دهیم.
fn chiranjeevi() {
print!("Hello World");
}
fn main() {
chiranjeevi();
}
تلفیقی
برای تبدیل کدی که در Rust نوشته ایم به an فایل اجرایی که می تواند برای اجرای آنچه به عنوان کد نوشته ایم اجرا شود، باید برنامه را کامپایل کنیم. دستور کامپایل یک برنامه است rustc <file-name>
. در مورد من، این خواهد شد rustc hey.rs
.
این یک یا دو فایل بسته به سیستم عامل شما تولید می کند. در ویندوز، 2 یا 1 در Mac/Unix با نامی که همان فایلی که ایجاد کردید وجود خواهد داشت. اینها فایل های باینری برنامه هستند که ما نوشته ایم. برای اجرای اینها باید انجام دهیم ./hey
در مک/یونیکس یا .\hey.exe
در ویندوز
خروجی چیزی شبیه این را خواهید دید 👇
سعی کنید ببینید خروجی چه زمانی به نظر می رسد println!
به جای استفاده می شود print!
، شما تفاوت را دریافت خواهید کرد.
تغییر کوچک …
اگر می بینید، ما در واقع به عملکرد دیگری که خط چاپ را اجرا می کند نیاز نداریم. ما می توانیم مستقیماً آن خط را در داخل بنویسیم main
به جای اینکه در تابع دیگری بنویسید و آن تابع را فراخوانی کنید. هیچ تغییری در خروجی وجود نخواهد داشت، اما می توانیم فراخوانی تابع را کاهش دهیم.
پس برنامه نهایی باید شبیه 👇 باشد
fn main() {
print!("Hello World");
}
نتیجه
وای!!!! ما به تازگی “Hello World” خود را بدون کمک بار تکمیل کردیم. اما، لطفاً وقتی با Rust سر و کار دارید، بدون بار کار نکنید.
اگر این مطلب را ارزش خواندن میدانید، لطفاً فراموش نکنید که لایک کنید، نظرات خود را به اشتراک بگذارید و این مقاله را با دوستان و جامعه خود به اشتراک بگذارید زیرا این باعث تشویق من میشود. همچنین فراموش نکنید که در شبکه های اجتماعی که در مقدمه ذکر کردم با من در ارتباط باشید. اشتراک در من کانال یوتیوب همچنین اگر یک یادگیرنده بصری هستید برای محتوای مشابه. بیایید در مقاله بعدی همدیگر را ببینیم، خداحافظ 👋 تا آن زمان.