آموزش Mapping در سالیدیتی
در سالیدیتی وقتی میخواهید مجموعه ای از داده ها را ذخیره کنید، می توانید از آرایه مپینگ (Mapping) استفاده کنید. در این مقاله، به آموزش Mapping سالیدیتی و نحوه اضافه کردن کلیدها و مقادیر با استفاده از تابع سازنده خواهیم پرداخت.
نقشه برداری (Mapping) چیست؟
به دنبال مستندات Solidity «میتوانید نگاشتها را بهعنوان جداول هش در نظر بگیرید، که تقریباً مقداردهی اولیه میشوند به طوری که هر کلید ممکن وجود داشته باشد و به مقداری که نمایش بایت آن صفر است، مقدار پیشفرض یک نوع، نگاشت میشود».
به عبارت دیگر، نگاشت در Solidity مانند یک فرهنگ لغت در پایتون یا نقشه در جاوا اسکریپت است. پایتون به شما امکان می دهد از طریق یک فرهنگ لغت تکرار کنید و جاوا اسکریپت به شما امکان می دهد از طریق نقشه تکرار کنید. با این حال، در سالیدیتی، شما نمی توانید از طریق Mapping تکرار کنید.
نقشه برداری از نحو زیر استفاده می کند
mapping(_KeyType => _ValueType) public mappingName
همچنین می توانید از نگاشت تو در تو به روش زیر استفاده کنید:
mapping(_KeyType => mapping(_KeyType => _ValueType)) public mappingName;
مثال Mapping در سالیدیتی
اجازه دهید نحوه عملکرد Mapping سالیدیتی را توضیح به نحوه دیگری بیان کنیم. جدول زیر شماره اتاق ها را با نام مهمان هتل مربوطه نشان می دهد. شما می توانید در مورد این جدول به عنوان یک رابطه جفت کلید-مقدار فکر کنید که در آن می توانید مجموعه ای منحصر به فرد از “کلیدها” را پیدا کنید که با یک مقدار منحصر به فرد مطابقت دارند.
بنابراین اگر مقدار “102” را بخواهید، “Sara” دریافت خواهید کرد.
101 | Jon |
102 | Sara |
103 | Paul |
104 | Ron |
105 | Alfred |
بیایید با Mapping سالیدیتی ادامه دهیم:
pragma solidity ^0.8.4;
contract MyContract {
mapping(uint => string) public names;
}
ابتدا باید نگاشت را با کلمه کلیدی mapping اعلام کنید و سپس نوع داده(متغیر) کلید و مقدار را مشخص کنید. در این حالت، هر کلید در نگاشت یک uint و هر مقدار مربوطه یک رشته خواهد بود.
قبل از اینکه قرارداد هوشمند خود را اجرا کنیم تا ببینیم نقشه برداری چگونه کار می کند، داده هایی را اضافه می کنیم. برای انجام این کار از تابع سازنده استفاده می کنم.
constructor() public {
names[101] = "Jon";
names[102] = "Sara";
names[103] = "Paul";
}
}
اکنون می توانیم قرارداد هوشمند ساده خود را در Remix مستقر کنیم تا ببینیم چگونه کار می کند. بیایید روی “Deploy” کلیک کنیم.

هنگامی که قرارداد Deploy شد، می توانید mapping سالیدیتی را در عمل مشاهده کنید. برای انجام این کار، باید یک کلید ارائه دهید و روی “call” کلیک کنید.

در این مثال، مقدار کلید “101” را درخواست کردیم و “Jon” را دریافت کردیم.
دیدگاه ها