انواع داده ها در Rust
در این بخش به بررسی انواع داده ها در Rust می پردازیم، زبان برنامهنویسی Rust یکی از زبانهای نوظهور و محبوب در دنیای توسعه نرمافزار است که به دلیل ویژگیهای پیشرفتهای نظیر مدیریت حافظه امن، عملکرد بالا و پشتیبانی از برنامهنویسی همزمان، توجه بسیاری از برنامهنویسان را به خود جلب کرده است. یکی از ویژگیهای اساسی هر زبان برنامهنویسی، انواع دادهها (Data Types) است. درک صحیح انواع دادهها در Rust، برای نوشتن کدهای کارآمد و ایمن حیاتی است.
Rust به عنوان یک زبان سیستممحور، انواع دادهها را با هدف کارایی و ایمنی طراحی کرده است. در این زبان، برنامهنویس باید نوع متغیرها را به صورت مشخص تعیین کند (یا از سیستم استنتاج نوع خودکار زبان بهره ببرد). این ویژگی به برنامهنویسان کمک میکند تا خطاهای معمولی ناشی از نوع دادهها در زمان کامپایل شناسایی شوند و از بروز مشکلات در زمان اجرا جلوگیری شود. در این مقاله، با انواع دادهها در Rust آشنا خواهیم شد و ویژگیهای هرکدام را به همراه مثالهایی مورد بررسی قرار میدهیم.
انواع دادههای اصلی (Scalar Types)
انواع دادههای اصلی در Rust شامل اعداد صحیح (Integer)، اعداد اعشاری (Floating-point)، نوع منطقی (Boolean) و کاراکترها (Character) هستند. این دادهها سادهترین و ابتداییترین واحدهای دادهای هستند.
۱. اعداد صحیح (Integer)
اعداد صحیح در Rust برای مقادیر عددی بدون بخش اعشاری استفاده میشوند. این نوع دادهها بسته به اندازه و علامت به دستههای مختلفی تقسیم میشوند:
- علامتدار (Signed): مثل
i8
,i16
,i32
,i64
,i128
که اعداد مثبت و منفی را شامل میشوند. - بدون علامت (Unsigned): مثل
u8
,u16
,u32
,u64
,u128
که فقط اعداد مثبت را شامل میشوند.
مثال:
توضیح: در این مثال، دو نوع عدد صحیح علامتدار و بدون علامت تعریف شده است. متغیر signed_integer
میتواند مقادیر منفی داشته باشد، اما unsigned_integer
تنها مقادیر مثبت را میپذیرد.
۲. اعداد اعشاری (Floating-Point)
برای محاسباتی که نیاز به دقت اعشاری دارند، از اعداد اعشاری استفاده میشود. Rust دو نوع اصلی برای این منظور ارائه میدهد:
f32
: اعداد اعشاری با دقت ۳۲ بیتf64
: اعداد اعشاری با دقت ۶۴ بیت
مثال:
توضیح: در اینجا، pi
به دلیل استفاده از f64
دقت بیشتری دارد، در حالی که small_pi
با f32
فضای حافظه کمتری مصرف میکند.
۳. نوع منطقی (Boolean)
نوع منطقی تنها دو مقدار true
یا false
را میپذیرد و برای شرایط و منطق برنامه استفاده میشود.
مثال:
توضیح: متغیر is_rust_awesome
نشاندهنده یک شرط منطقی است که بر اساس مقدار آن، کد اجرا میشود.
۴. کاراکترها (Characters)
نوع char
در Rust برای نگهداری یک کاراکتر واحد استفاده میشود. این نوع داده از یونیکد پشتیبانی میکند، بنابراین میتواند حروف، اعداد و حتی ایموجیها را ذخیره کند.
مثال:
توضیح: در این مثال، متغیر letter
یک حرف انگلیسی و متغیر emoji
یک ایموجی را ذخیره میکند.
انواع دادههای ترکیبی (Compound Types)
Rust همچنین انواع دادههای ترکیبی را برای نگهداری چندین مقدار در یک ساختار واحد ارائه میدهد. این انواع شامل آرایهها (Arrays) و تاپلها (Tuples) میشوند.
۱. آرایهها (Arrays)
آرایهها در Rust برای نگهداری مجموعهای از مقادیر با نوع داده یکسان استفاده میشوند. طول آرایه ثابت است و نمیتواند در طول زمان تغییر کند.
مثال:
توضیح: آرایه numbers
دارای چهار عنصر است و از نوع i32
میباشد. برای دسترسی به عناصر آرایه از ایندکس استفاده میشود.
۲. تاپلها (Tuples)
تاپلها میتوانند مقادیری با انواع داده مختلف را در یک مجموعه ذخیره کنند. اندازه تاپل ثابت است و نمیتواند تغییر کند.
مثال:
توضیح: تاپل person
سه مقدار شامل نام، سن و قد را نگهداری میکند که هر کدام نوع متفاوتی دارند.
مقادیر پویا و اشارهگرها
Rust علاوه بر انواع دادههای ثابت، ساختارهایی برای مدیریت دادههای پویا و اشارهگرها نیز ارائه میدهد. این شامل نوع رشتهها (Strings)، اشارهگرهای هوشمند و مقادیر جعبهای (Boxed Values) است.
۱. رشتهها (Strings)
رشتهها در Rust به دو نوع اصلی تقسیم میشوند:
&str
: رشتهای با طول ثابتString
: رشتهای پویا که میتواند تغییر کند.
مثال:
توضیح: static_str
رشتهای ثابت است، در حالی که dynamic_str
میتواند تغییر کند و دادههای جدیدی به آن اضافه شود.
درک انواع دادهها در Rust یکی از مراحل کلیدی برای نوشتن کدهای امن و بهینه است. Rust با ارائه مجموعهای از انواع دادههای ساده و ترکیبی، برنامهنویسان را قادر میسازد تا از حافظه به طور کارآمد و امن استفاده کنند. انتخاب نوع داده مناسب برای هر متغیر، تاثیر مستقیمی بر عملکرد و ایمنی برنامه دارد. برای اطلاعات بیشتر، به مستندات رسمی Rust مراجعه کنید.
آیا این مطلب برای شما مفید بود ؟