منو
پنل کاربری

آموزش Mapping در سالیدیتی

تاریخ انتشار : 28 / تیر / 1401
نویسنده : وایت وال

در سالیدیتی وقتی می‌خواهید مجموعه ای از داده ها را ذخیره کنید، می توانید از آرایه مپینگ (Mapping) استفاده کنید. در این مقاله، به آموزش Mapping سالیدیتی و نحوه اضافه کردن کلیدها و مقادیر با استفاده از تابع سازنده خواهیم پرداخت.

نقشه برداری (Mapping) چیست؟

به دنبال مستندات Solidity «می‌توانید نگاشت‌ها را به‌عنوان جداول هش در نظر بگیرید، که تقریباً مقداردهی اولیه می‌شوند به طوری که هر کلید ممکن وجود داشته باشد و به مقداری که نمایش بایت آن صفر است، مقدار پیش‌فرض یک نوع، نگاشت می‌شود».

به عبارت دیگر، نگاشت در Solidity مانند یک فرهنگ لغت در پایتون یا نقشه در جاوا اسکریپت است. پایتون به شما امکان می دهد از طریق یک فرهنگ لغت تکرار کنید و جاوا اسکریپت به شما امکان می دهد از طریق نقشه تکرار کنید. با این حال، در سالیدیتی، شما نمی توانید از طریق Mapping تکرار کنید.

نقشه برداری از نحو زیر استفاده می کند

mapping(_KeyType => _ValueType) public mappingName

همچنین می توانید از نگاشت تو در تو به روش زیر استفاده کنید:

mapping(_KeyType => mapping(_KeyType => _ValueType)) public mappingName;

مثال Mapping در سالیدیتی

اجازه دهید نحوه عملکرد Mapping سالیدیتی را توضیح به نحوه دیگری بیان کنیم. جدول زیر شماره اتاق ها را با نام مهمان هتل مربوطه نشان می دهد. شما می توانید در مورد این جدول به عنوان یک رابطه جفت کلید-مقدار فکر کنید که در آن می توانید مجموعه ای منحصر به فرد از “کلیدها” را پیدا کنید که با یک مقدار منحصر به فرد مطابقت دارند.

بنابراین اگر مقدار “102” را بخواهید، “Sara” دریافت خواهید کرد.

101Jon
102Sara
103Paul
104Ron
105Alfred

بیایید با 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 کردن قرارداد هوشمند در Remix

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

مشاهده کردن mapping در سالیدیتی

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

3.7/5 - (6 امتیاز)


آموزش های مرتبط

دوره های آموزشی
آموزش ساخت بازی در بلاکچین با سالیدیتی

آموزش ساخت بازی در بلاکچین با سالیدیتی

پیشرفته
05:40:00
21 خرداد
7,000,000 تومان
آموزش ساخت توکن و ایردارپ در سالیدیتی

آموزش ساخت توکن و ایردراپ در سالیدیتی

پیشرفته
04:30:00
4 تیر
3,200,000 تومان
آموزش پیاده سازی قرارداد هوشمند (اسمارت کانترکت) روی اتریوم تستی

آموزش پیاده سازی قرارداد هوشمند روی اتریوم تستی

پیشرفته
00:30:00
5 خرداد
850,000 تومان

آموزش های پیشنهادی

آموزش های رایگان
انواع متغیر در سالیدیتی

آموزش متغیرها در سالیدیتی

متوسط
22 دقیقه
22 تیر
رایگان :)
آموزش نصب و فعال سازی کیف پول متامسک

آموزش نصب و فعال سازی کیف پول متامسک

مبتدی
18 دقیقه
20 اردیبهشت
رایگان :)
آموزش کدنویسی سالیدیتی با ریمیکس

کدنویسی سالیدیتی با ریمیکس

مبتدی
25 دقیقه
13 تیر
رایگان :)

دیدگاه ها

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

در کنار یکدیگر بیاموزیم