30 روز زنگ – روز 1

هیچ سفر آموزشی بدون چاپ شروع نمی شود Hello World!
به کنسول روز اول دقیقا همینطور گذشت. برخی از اصول CLI را یاد گرفتم و با برخی از انواع داده های اولیه آشنا شدم.
سوالات باز
- دقیقا چی هستن
::
و عملگر نقطه استفاده می شود؟ - تفاوت بین عملگرهای بولی دو و تک کاراکتری چیست؟
- آیا عبارات پیکان کاربرد بیشتری دارند؟
- آیا عبارات پیکان قوانین قالب بندی یا انواع دیگر محدودیت ها را دارند؟
- روی زمین ماکروها در Rust چیست؟
- آیا حاشیه نویسی نوع مورد نیاز است یا تایپ ضمنی برای کامپایلر قابل قبول است؟
بار ورودی 📦🚢
0 تا “سلام جهان!” در 3 دستور
نصب Rust
با پیروی از دستورالعمل های وب سایت رسمی می توانید Rust را به راحتی نصب کنید.
پروژه خود را ایجاد کنید
هنگامی که Rust نصب شد و به PATH اضافه شد، می توانید اجرا کنید:
cargo new <project_name>
این یک دسته از کدهای دیگ بخار و همچنین ساختار پروژه خوبی را برای کد شما اضافه می کند. دو محصول مهم فرمان شما هستند Cargo.lock
و Cargo.toml
فایل هایی که با مدیریت وابستگی و تکرارپذیری سروکار دارند.
پروژه خود را بسازید و اجرا کنید
هنگامی که در روت پروژه جدید خود هستید، می توانید اجرا کنید:
cargo run
این پروژه شما را ساخته و اجرا می کند. یک پروژه جدید به سادگی “Hello World!” به صفحه نمایش
بیشتر در مورد بار
نصب پیش فرض Rust همراه است cargo
، مدیر بسته CLI ظاهراً همه کاره Rust. همانطور که در بالا دیدیم، برای راه اندازی پروژه و ساخت پروژه استفاده می شود. در اینجا چند دستور دیگر وجود دارد:
-
cargo add <package_name>
-> یک وابستگی به پروژه اضافه کنید -
cargo build
-> پروژه را بسازید و یک فایل اجرایی تولید کنید -
cargo compile
-> پروژه را بدون ارائه یک فایل اجرایی کامپایل کنید
در نگاه اول به نظر می رسد محموله بسیار شبیه پایتون است poetry
که یک ابزار شخص ثالث است. من فکر می کنم من فقط سطح کاری که محموله می تواند انجام دهد را خراشیده ام.
به طور خلاصه، توسعه دهندگان Rust مجموعه ای عالی از ابزارهای CLI را از جعبه دریافت می کنند. اگرچه این موضوع کمی مورد نظر است، اما به توسعه دهندگان جوان درک واضح تری از اینکه ساختار پروژه “خوب” می تواند شبیه باشد، می دهد.
من اعلام میکنم
متغیرها در Rust را می توان با استفاده از:
let
-
const
همه متغیرها به طور پیشفرض در Rust غیرقابل تغییر هستند، اما ما میتوانیم یک غیر ثابت را با اضافه کردن تغییرپذیر اعلام کنیم.
mut
به اعلامیه: -
let mut
متغیرهای استفاده نشده باید با اعلان شوند
_
توسعه دهندگان زنگ استفاده می کنند مورد مار برای اعلام متغیر حروف کوچک برای متغیرها، حروف بزرگ برای ثابت ها.
از شما انتظار می رود (و من معتقدم لازم است) اعلان های نوع را برای همه متغیرها اضافه کنید. پسوند رسمی Rust VS Code برخی از قابلیت های تکمیل خودکار را برای اعلان نوع ارائه می دهد.
به طور خلاصه، Rust رویکرد بسیار متعارفی به متغیرها دارد، به جز استفاده و snake case و تایپ خودکار تکمیل در IDE، که من قبلاً ندیده بودم.
عملگرهای زنگ زده و نحو
در اینجا جالبترین عملگرها و نحوی را که بعد از روز اول در Rust دیدهام برجسته میکنم.
دو نقطه در مقابل نقطه
در بالای اکثر فایلهای Rust عبارتهای import را میبینید. این یک مثال است:
use std::fs::File;
این نحو کولون دوگانه برای چشم پایتون من بسیار جدید است. در نظر گرفتن:
from std.fs import File
از آنجایی که ماژول های پایتون خود شی هستند، می توانیم از نقطه-نقطه برای استخراج اعضای آن اشیا استفاده کنیم. در Rust به نظر می رسد که std
و fs
هستند crates
و mods
به ترتیب و File
تنها شیئی است که می توانیم با آن بازی کنیم. من فرض میکنم از عملگر دو نقطهای استفاده میشود crates
و mods
، در حالی که عملگر نقطه برای رزرو شده است structs
. این را در پست بعدی وبلاگ توضیح خواهم داد.
let is_rust_wesome: bool = true;
true
و false
حروف بولی Rust هستند. ما می توانیم از عملگرهای بولی کلاسیک برای مقایسه عبارات استفاده کنیم. چیزی که کمی گیج کننده است این است که Rust عملگرهای دو کاراکتری و تک کاراکتری را پیاده سازی می کند:
-
&&
و&
-
||
و|
من مطمئن نیستم که تفاوت چیست، این در پست بعدی وبلاگ پاسخ داده خواهد شد.
جریان های مشروط
در رست، if
عبارات به شرایط داخل پرانتز و به دنبال آن یک بلوک پیچیده در پرانتزهای فرفری نیاز دارند. شرطی های زنجیره ای از else if
کلمه کلیدی که بند پایانی با علامت گذاری شده است else
کلمه کلیدی.
زنگ نیز پشتیبانی می کند match
عباراتی که شبیه به سوییچ دستورات از زبان های برنامه نویسی دیگر هستند. آ match
عبارت عبارات مشخص شده با کاما را در پرانتزهای فرفری می پیچد.
هر عبارت با یک تابع پیکان درون خطی (که از طریق بیان می شود) دنبال می شود =>
) که در صورت ارزیابی آن عبارت اجرا می شود true
. حالت پیش فرض برای a match
بیانیه با الف بیان می شود _
.
من شیفته نحو تابع فلش هستم. در حال حاضر، مشخص نیست که نحو فلش قوانینی در مورد قالب بندی یا هر نوع محدودیت دیگری مانند جاوا اسکریپت دارد یا خیر. من همه قوانین را در پست بعدی وبلاگ خلاصه خواهم کرد.
ماکروهای اکسل در Rust؟
برای پایان دادن به این پست وبلاگ، می خواهم به موارد مشکوک اشاره کنم macro
Rust را تایپ کنید آ macro
یک تابع با !
در پسوند. خوشبختانه، فکر نمیکنم برای درک اینکه اینجا چه خبر است، نیازی به برگزاری دورههای اکسل یا VBA نباشیم. اما من قبل از پست وبلاگ فردا نگاهی به این موضوع خواهم داشت.
اولین برداشت من این است که Rust عملگرها و نحو را از C++، JavaScript و Python با هم ترکیب میکند. بیایید در روزهای آینده ببینیم که آیا این برداشت اول تا حدودی درست است یا خیر.