با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره آموزش زبان برنامه نویسی دارت Dart در خدمت شما هستیم.
در این جلسه قصد داریم به آموزش متغیر ها در زبان دارت Dart بپردازیم.
متغیر ها در واقع خانه هایی از حافظه هستند که داده ها و مقادیر را در خود ذخیره میکنند.
به عبارت دیگر، نگهدارنده های مقادیر هستند.
هر متغیر باید یک نام داشته باشد. در پایین قوانین نام گذاری متغیر ها را ذکر کرده ایم:
یک متغیر قبل از اینکه استفاده شود، حتما باید از قبل تعریف شده باشد.
از کلمه کلیدی var میتوانیم برای تعریف متغیر ها استفاده کنیم. در مثال زیر یک متغیر به نام name که داده ای از نوع رشته را در خود ذخیره میکند.
1 | var name = 'Smith'; |
همچنین زبان دارت از type-checking با قرار دادن نوع داده به جای var نیز استفاده میکند.
با این کار آن متغیر فقط مقادیری را که نوع آن ها با نوع متغیر همخوانی دارد، ذخیره میکند.
مثال:
1 2 | String name = 'Smith'; int num = 10; |
کد زیر را در نظر بگیرید:
1 2 3 | void main() { String name = 1; } |
اگر کد بالا را کامپایل کنیم، کامپایلر به ما یک هشدار مبنی بر اینکه نوع مقدار اختصاص یافته با نوع متغیر همخوانی ندارد.
1 | Warning: A value of type 'String' cannot be assigned to a variable of type 'int' |
تمام متغیر هایی که مقدار دهی نشده اند، دارای مقدار اولیه null هستند.
این به این دلیل است که زبان دارت متغیر ها را شئ در نظر میگیرد.
مثال:
1 2 3 4 | void main() { int num; print(num); } |
خروجی:
1 | Null |
متغیر هایی که بدون انواع داده ایستا تعریف شوند، به طور ضمنی به صورت پویا تعریف میشوند.
همچنین میتوان به طور صریح با استفاده از کلمه کلیدی dynamic به جای کلمه کلیدی var استفاده کرد.
مثال:
1 2 3 4 | void main() { dynamic x = "tom"; print(x); } |
خروجی:
1 | tom |
از کلمات کلیدی final و const برای تعریف ثابت ها استفاده میشود.
دارت از تغییر مقدار متغیر هایی که با کلمات کلیدی final و const تعریف شده اند، جلوگیری میکند.
کلمه کلیدی const برای تعریف ثابت های compile-time استفاده میشوند.
میتوانیم متغیر های را به روش های زیر به صورت final یا const تعریف کنیم:
1 | final variable_name |
یا
1 | final data_type variable_name |
و
1 | const variable_name |
یا
1 | const data_type variable_name |
مثال:
1 2 3 4 5 | void main() { final v1 = 12; const v2 = 13; v2 = 12; } |
با کامپایل کد بالا، خطای زیر را دریافت میکنیم:
1 2 3 4 5 6 7 | Unhandled exception: cannot assign to final variable 'v2='. NoSuchMethodError: cannot assign to final variable 'v2=' #0 NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178) #1 main (file: Test.dart:5:3) #2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) #3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148) |
جلسه آموزش متغیر ها در زبان دارت نیز به پایان رسید.
در جلسه بعد به آموزش عملگر ها در دارت خواهیم پرداخت.