الگوها و Match
الگوها یک نحو خاص در Rust هستند که برای مطابقت با ساختار انواع، چه پیچیده و چه ساده، استفاده میشوند. استفاده از الگوها همراه با عبارات match
و سایر سازهها به شما کنترل بیشتری بر جریان کنترل برنامه میدهد. یک الگو از ترکیبی از موارد زیر تشکیل شده است:
- مقادیر ثابت (Literals)
- آرایهها، enumها، structها یا tupleهای تخریبشده
- متغیرها
- کاراکترهای عمومی (Wildcards)
- جاینگهدارها (Placeholders)
برخی از نمونه الگوها عبارتند از x
، (a, 3)
و Some(Color::Red)
. در زمینههایی که الگوها معتبر هستند، این مؤلفهها شکل دادهها را توصیف میکنند. سپس برنامه ما مقادیر را با الگوها مقایسه میکند تا مشخص شود آیا دادهها شکل درستی دارند تا یک قطعه خاص از کد اجرا شود یا خیر.
برای استفاده از یک الگو، آن را با یک مقدار مقایسه میکنیم. اگر الگو با مقدار مطابقت داشته باشد، از قطعات مقدار در کد خود استفاده میکنیم. به یاد آورید که در فصل 6 از عبارات match
که از الگوها استفاده میکردند، مانند مثال ماشین مرتبسازی سکه، بحث کردیم. اگر مقدار با شکل الگو تطابق داشته باشد، میتوانیم از قسمتهای نامگذاریشده استفاده کنیم. اگر مطابقت نداشته باشد، کد مرتبط با آن الگو اجرا نخواهد شد.
این فصل یک مرجع جامع در مورد هر چیزی است که به الگوها مربوط میشود. ما مکانهای معتبری که میتوان از الگوها استفاده کرد، تفاوت بین الگوهای قابلرد (refutable) و غیرقابلرد (irrefutable)، و انواع مختلف نحوی الگو که ممکن است ببینید را پوشش خواهیم داد. تا پایان فصل، خواهید دانست که چگونه از الگوها برای بیان بسیاری از مفاهیم به روشی واضح استفاده کنید.