title | actions | material | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
آرایهها |
|
|
زمانی که میخواین یک مجموعه از هر چیزی بسازین، میتونین از آرایه استفاده کنین. در سالیدیتی دو نوع آرایه وجود داره: آرایه ایستا و آرایه پویا:
// آرایه دو عنصری ایستا (طول ثابت):
uint[2] fixedArray;
// آرایه ایستای دیگری که میتواند ۵ رشته را نگه دارد:
string[5] stringArray;
// :آرایه پویا- طول ثابت ندارد و میتواند بزرگ شود
uint[] dynamicArray;
همچنین میتونین از آرایهای از ساختارها استفاده کنین. در اینجا از ساختار Person
از فصل قبل استفاده میکنیم:
یادتونه که متغیرهای حالت به صورت دائمی در بلاکچین ذخیره میشدند؟ بنابراین ایجاد یک آرایه پویا از ساختارها مثل این میتونه برای ذخیره دادههای ساختاریافته در قرارداد، چیزی شبیه به پایگاه داده، مفید باشه
شما میتونین یک آرایه را به صورت عمومی
تعریف کنین، و سالیدیتی بهصورت خودکار یک متد getter برایش ایجاد میکنه. سینتکس آن به صورت زیر خواهد بود:
Person[] public people;
به این ترتیب بقیه قراردادها تنها دسترسی خواندن از این آرایه را خواهند داشت. بنابراین این یک الگوی مناسب برای ذخیره داده عمومی در قرارداد شما است.
میخواهیم یک ارتش زامبی در اپلیکیشنمان داشته باشیم. و میخواهیم زامبیهامون را به رخ اپلیکیشنهای دیگر بکشیم، بنابراین میخواهیم به صورت عمومی ذخیره بشن.
۱. یک آرایه عمومی Zombie
به صورت ساختار ایجاد کنین، و اسمش رو zombies
بگذارین.