مشخصات مقاله
زبان برنامه نویسی دارت چیست؟ (Dart)
دارت یک زبان برنامهنویسی منبع باز (Open Source)، شیگرا و با سینتکسی شبیه به زبان C است که در سال 2011 توسط گوگل توسعه یافته است. زبان برنامه نویسی دارت به طور فعال توسعه مییابد و برای ساخت اپلیکیشنهای موبایل طراحی شده است. این زبان از تایپ قوی بهره میبرد و کدهای نوشته شده در آن به Native Machine Code کامپایل میشوند.
دارت از مفاهیم برنامهنویسی رایج مانند کلاسها، اینترفیسها و توابع پشتیبانی میکند. به جای آرایههای معمول، دارت از مجموعهها و جنریکها برای سازماندهی دادهها استفاده میکند، که انعطافپذیری بیشتری را در برنامهنویسی فراهم میآورد.
دارت برای طراحی UI بسیار قدرتمند است، به خصوص زمانی که با فریمورک Flutter همراه میشود، که اجازه میدهد توسعهدهندگان با یک پایگاه کد واحد، اپلیکیشنهایی برای iOS و Android بسازند. این توانایی که دارت فراهم میکند، موجب صرفهجویی در زمان و منابع میشود و تجربه کاربری یکپارچهای را برای هر دو سیستمعامل ایجاد میکند.
مثال زیر یک برنامه ساده با زبان دارت را نشان می دهد:
void main() { for (int i = 0; i < 5; i++) { print('hello ${i + 1}'); } }
نوع داده (Data Type) در زبان برنامه نویسی دارت
دارت به عنوان یک زبان تایپ قوی، انواع متغیرها را در زمان کامپایل تعیین میکند. این ویژگی به برنامهنویسان کمک میکند تا اشتباهات احتمالی را قبل از اجرای برنامه شناسایی و رفع کنند.
نوع داده ای string نگهدارنده ی متن است. در این مورد می توانید از علامت نقل قول تک یا دوگانه استفاده کنید.
; double price = 125.50
نوع داده ای num در دو نوع مختلف، برای اعداد به کار می رود : integer، برای اعداد صحیح و double، برای اعداد صحیح
;bool var_name = false
از نوع داده ای bool برای نشان دادن مقادیر true و false استفاده می شود.
به طور کلی، همه چیز در دارت یک شی است (به عنوان مثال، عدد صحیح، رشته). اما یک شی می تواند پیچیده تر نیز باشد
متغیر ها و توابع
متغیرها مکانهایی در حافظه هستند که میتوانند انواع دادهها را نگه دارند. مثلاً، اگر بخواهیم سن کسی را ذخیره کنیم، میتوانیم از یک متغیر استفاده کنیم:
var myAge = 50;
در این مثال، myAge نام متغیر است و مقدار 50 (یک عدد صحیح) در آن ذخیره شده است. در زبان برنامهنویسی دارت، شما میتوانید به جای var، int را برای تعریف دقیقتر استفاده کنید، اما دارت با استفاده از ویژگی استنباط نوع (Type Inference) میتواند نوع دادهها را خودش تشخیص دهد.
توابع مجموعهای از دستورات هستند که یک کار خاص را انجام میدهند و در برنامههای بزرگ به ما کمک میکنند تا کدها را به قسمتهای کوچکتر و مدیریتپذیر تقسیم کنیم. یک تابع معمولاً شامل نام، پارامترها (اگر نیاز باشد)، و بلوک دستورات است. مثال زیر نحوه تعریف یک تابع ساده در دارت را نشان میدهد: :
void greet(String name) { print("Hello, $name!"); }
در این مثال، greet نام تابع است، String name پارامتری است که تابع دریافت میکند، و دستور print متنی را به همراه نام دریافتی نمایش میدهد.
عملگر ها
زبان دارت، مانند زبانهای برنامهنویسی دیگری مانند C، Kotlin و Swift، دارای انواع عملگرها است. نام عملگرها در لیست زیر ذکر شده است:
- عملگرهای حسابی: برای انجام عملیات ریاضی مانند جمع، تفریق، ضرب و تقسیم.
- عملگرهای مقایسهای: رای مقایسه دو مقدار، مانند تساوی (==).
- عملگرهای منطقی: برای بررسی شرایط بولی، مانند AND (&&) و OR (||).
- عملگرهای افزایشی و کاهشی: مانند ++ و -- برای افزایش یا کاهش مقدار یک متغیر.
تصمیم گیری و حلقه ها
زبان دارت از ساختارهای کنترلی زیر پشتیبانی میکند که برای تصمیمگیری یا تکرار دستورات استفاده میشوند: زبان دارت از انواع دستورات تصمیم گیری زیر پشتیبانی می کند:
- if: اجرای بلوک کد اگر شرط درست باشد.
- if els: اجرای بلوک کد اگر شرط درست باشد، در غیر این صورت بلوک دیگری اجرا میشود.
- switch: رای اجرای بلوکهای مختلف کد بسته به مقدار یک متغیر.
مثال:
void main() { var num = 12; if (num % 2 = = 0) { print("Number is Even."); } else { print("Number is Odd."); } }
حلقه ها برای اجرار مکرر یک بلوک کد تا زمانی که یک شرط مشخص درست باشد، استفاده می شوند زبان دارت از انواع دستورات حلقه زیر پشتیبانی می کند:
- for: تکرار یک بلوک کد به تعداد مشخص.
- for...in: تکرار بلوک کد برای هر عنصر در یک مجموعه.
- while: کرار یک بلوک کد تا زمانی که شرط درست باشد.
- do...while: مشابه while، اما حداقل یک بار بلوک کد اجرا میشود قبل از بررسی شرط.
مثال
void main() { var name = ["Peter", "Rinky Ponting", "Abhishek"]; for (var prop in name) { print(prop); } }
کامنت ها
کامنتها، که خطوطی از کد هستند که اجرا نمیشوند، در همه زبانهای برنامهنویسی برای ارائه توضیحات در مورد کد مورد استفاده قرار میگیرند. در دارت سه نوع کامنت وجود دارد:
- استفاده از دستور // برای ایجاد کامنت های یک خطی
- استفاده از دستور /* ... */ برای ایجاد کامنت های چند خطی
- استفاده از دستور /// برای تولید اسناد از کد، که معمولاً برای توضیحات API به کار میرود. بکار می رود.
Continue – Break
دستور continue در حلقهها به کار میرود تا جریان اجرای کد را متوقف کرده و به ابتدای حلقه برگرداند.
مثال:
void main() { for(int i=1;i<=10;i++){ if(i==5){ print("Hello"); continue; //دستورات بعدی را نادیده میگیرد } print(i); } }
دستور break برای خروج کامل از یک حلقه به کار میرود.
مثال:
void main() { for(int i=1;i<=10;i++){ if(i==5){ print("Hello"); break;//حلقه را کاملاً متوقف میکند } print(i); } }
Final – Const
دستور Final برای اعلان متغیرهایی که تنها یکبار مقداردهی میشوند. مقدار دادهشده به final پس از اولین تخصیص نمیتواند تغییر کند.
دستور const برای تعریف مقادیر ثابت که در زمان کامپایل مشخص میشوند و هرگز تغییر نمیکنند.
مثال:
void main() { final a = 100; const pi = 3.14; print(a); print(pi); }
برنامه نویسی شئ گرا
Dart یک زبان برنامهنویسی شیءگرا است که در آن هر چیزی یک شیء است، حتی اعداد و رشتهها. این زبان از مفاهیم اساسی برنامهنویسی شیءگرا پشتیبانی میکند که شامل کلاسها، اشیاء و روابط بین دادهها است.
در Dart، هر مقدار یک شیء است که حالت و رفتار خاص خود را دارد. شیء میتواند هم فیزیکی و هم منطقی باشد.
کلاسها قالبهایی هستند که برای ساخت اشیاء استفاده میشوند. کلاسها شامل موارد زیر میشوند:
- فیلدها (Fields): متغیرهایی که وضعیت یک شیء را نشان میدهند.
- متدها (Methods): توابع مربوط به یک کلاس که رفتار شیء را تعریف میکنند.
- سازنده (Constructor): برای ایجاد و مقداردهی اولیه اشیاء.
- دسترسیدهندهها (Getters) و تنظیمکنندهها (Setters): برای کنترل دسترسی به متغیرهای کلاس.
اجازه دهید مثالی را ببینیم که به شما کمک می کند تا مفهوم OOPs را به راحتی درک کنید:
class Mobile { // خصوصیات String color, brandName, modelName; // Method Creation String calling() { return "Mobile can do call to everyone."; } String musicPlay() { return "Mobile can play all types of Music."; } String clickPicture() { return "Mobile can take pictures."; } } void main() { // ایجاد شیء var myMob = new Mobile(); // دسترسی به خصوصیات myMob.color = "Black"; myMob.brandName = "Apple Inc."; myMob.modelName = "iPhone 11 Pro"; //نمایش خروجی print(myMob.color); print(myMob.modelName); print(myMob.brandName); print(myMob.calling()); print(myMob.musicPlay()); print(myMob.clickPicture()); }
در این مثال، ما یک کلاس Mobile تعریف کردهایم که شامل سه خصوصیت و سه متد است. سپس در تابع main، یک نمونه از کلاس Mobile ایجاد کرده و خروجیهای مختلف را چاپ میکنیم.