با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره آموزش زبان برنامه نویسی دارت Dart در خدمت شما هستیم.
در این جلسه قصد داریم به آموزش Map در زبان دارت Dart بپردازیم.
Map ها نیز مانند لیست ها مجموعه ای از مقادیر را در خود نگه میدارند.
اما Map ها مقادیر را به صورت جفت کلید-مقدار ذخیره میکنند.
همچنین اندازه Map ها همیشه پویا است و میتواند تغییر کند.
map ها میتوانند به دو صورت تعریف شوند:
برای این کار باید جفت های کلید-مقدار را داخل آکولاد {} قرار دهید.
1 | var identifier = { key1:value1, key2:value2 [,…..,key_n:value_n] } |
برای تعریف یک map با کبمه کلیدی new، مانند زیر عمل کنید.
1 | var identifier = new Map() |
مثال map با لیترال:
1 2 3 4 5 | void main() { var details = {'Usrname':'tom','Password':'pass@123'}; details['Uid'] = 'U1oo1'; print(details); } |
خروجی:
1 | {Usrname: tom, Password: pass@123, Uid: U1oo1} |
مثال map با کلمه کلیدی new:
1 2 3 4 5 6 | void main() { var details = new Map(); details['Usrname'] = 'admin'; details['Password'] = 'admin@123'; print(details); } |
خروجی:
1 | {Usrname: admin, Password: admin@123} |
توضیحات | Property |
یک شئ برمیگرداند که حاوی تمامی کلید های map است | keys |
یک شئ برمیگرداند که حاوی تمامی مقادیر map است | values |
اندازه map را برمیگرداند | length |
اگر map خالی باشد، true و در غیر این صورت false را برمیگرداند | isEmpty |
مثال:
1 2 3 4 | void main() { var details = {'Usrname':'tom','Password':'pass@123'}; print(details.keys); } |
خروجی:
1 | (Usrname, Password) |
توضیحات | تابع |
تمام جفت کلید-مقدار هایی که به تابع ارسال شده اند را به انتهای map اضافه میکند | ()addAll |
تمام جفت کلید-مقدار های map را حذف میکند | ()clear |
یک کلید و مقدار آن را از map حذف میکند. (اگر در map وجود داشته باشد) | ()remove |
یک تابع تعریف میکند که بر روی تمامی جفت کلید-مقدار ها اعمال میشود | ()forEach |
مثال:
1 2 3 4 5 6 7 | void main() { Map m = {'name':'Tom','Id':'E1001'}; print('Map :${m}'); m.addAll({'dept':'HR','email':'tom@xyz.com'}); print('Map after adding entries :${m}'); } |
خروجی:
1 2 | Map : {name: Tom, Id: E1001} Map after adding entries : {name: Tom, Id: E1001, dept: HR, email: tom@xyz.com} |
مثال:
1 2 3 4 5 6 7 | void main() { Map m = {'name':'Tom','Id':'E1001'}; print('Map :${m}'); dynamic res = m.remove('name'); print('Value popped from the Map :${res}'); } |
خروجی:
1 2 | Map :{name: Tom, Id: E1001} Value popped from the Map :Tom |
جلسه آموزش Map در زبان دارت نیز به پایان رسید.
در جلسه بعد به آموزش Runes در زبان دارت خواهیم پرداخت.
علی
عالی بود ممنون
پی وی لرن
خواهش می کنم
محمد
عالی بود -بسیار ممنون
حمید
سلام ممنون از آموزش های خوبتون
مثل اینکه خروجی مثال آخر رو اشتباه وارد کردید
درستش اینه
Map :{name: Tom, Id: E1001}
Value popped from the Map : Id: E1001
صادق
سلام. با سپاس
توجه داشته باشید که کلید های name و id از هم جدا و غیر مرتبط هستند(اگر دقت کنید می بینید که با کاما یا ویرگول از هم جدا شدند). بنابراین وقتی جفت کلید-مقدار name رو حذف می کنیم، اون جفت دیگه یعنی id و مقدارش حذف نمیشن. سطر آخر هم مقدارِ کلید حذف شده رو نشون میده که Tom هست. در واقع تابع ()remove نام یک کلید (در اینجا ‘name’) رو به عنوان آرگومان میگیره و کلید و مقدارش رو با هم حذف می کنه و در نهایت مقدار حذف شده (در اینجا ‘tom’) رو به عنوان خروجی بر می گردونه.