راهنمای سریع متدهای آرایه در Ruby – از صفر تا صد


در این مقاله راهنمای سریع متدهای آرایه در Ruby ارائه شده است و در آن تلاش شده همه موارد واقعاً مفید ذکر شوند. هر زمان که از یک متد آرایه استفاده میکنید، باید مطمئن شوید که مستندات آن را برای کسب اطلاعات بیشتر بررسی کردهاید. برای هر چه خلاصهتر ماندن این راهنما، مقادیر بازگشتی را در کامنتها نوشتهایم. بنابراین "arr # -> "stuff به این معنی است که مقدار بازگشتی برای arr به صورت "stuff" است.
ایجاد آرایه
برای ایجاد یک آرایه خالی جدید از دستور زیر استفاده کنید:
ایجاد آرایه جدید با مقادیر:
ایجاد آرایه جدید با مقادیر تکراری: برخی اوقات لازم است که آرایهای با چند مقدار تکراری داشته باشیم:
ایجاد آرایهای از رشتهها با میانبر: با استفاده از میانبر w% میتوانید یک آرایه از رشتهها بدون گیومه یا کاما بسازید:
تبدیل رشته به یک آرایه: عبارت split# موجب افراز یک رشته به یک آرایه میشود.
این دستور یک آرگومان به صورت رشته میگیرد تا تعیین شود آیتمهای آرایه چگونه باید افراز شوند. در صورت عدم تعیین این گزینه از فاصله استفاده خواهد شد. برای این که هر کاراکتر به یک آیتم مجزا در آرایه حاصل تبدیل شود، باید آرگومانی به صورت "" ارسال شود:
نکته اضافی - تبدیل یک آرایه به یک رشته: با استفاده از join# میتوان کاری در جهت عکس انجام داد و یک رشته جدید از آیتمهای یک آرایه ساخت. این دستور یک رشته به عنوان آرگومان اختیاری میگیرد که بین مقادیر مختلف قرار میدهد:
خواندن/دریافت مقادیر
دریافت طول آرایه: length# و size# معادل هم هستند:
دریافت مقادیر یک اندیس:
دریافت اندیس یک مقدار با index#:
دریافت مقدار اندیس از انتها به ابتدا: میتوان با استفاده از اعداد منفی از انتهای آرایه به سمت ابتدا حرکت کرد:
دریافت مقدار یک اندیس یا مقدار پیشفرض: fetch# مقدار موجود در یک اندیس را بازگشت میدهد یا آرگومان پیشفرض با مقدار بلوک کد را بازگشت خواهد داد:
دریافت یک قطعه از آرایه: میتوان از کاما یا بازهها (ranges) استفاده کرد:
بررسی وجود یک مقدار در آرایه با استفاده از ?include#:
افزودن و بهروزرسانی مقادیر
تغییر یک مقدار در یک اندیس:
افزودن یک مقدار به انتهای یک آرایه: عملگر << به نام عملگر shovel نامیده میشود، اما میتوانید از push# نیز استفاده کنید.
این متدها آرایه اصلی را تغییر میدهند:
افزودن یک مقدار به ابتدای آرایه با استفاده از unshift#:
افزودن یک مقدار به میانه آرایه با استفاده از insert#:
حذف و پاک کردن مقادیر
برای حذف یک مقدار از آرایه از delete# استفاده میکنیم:
برای حذف عنصری بر اساس اندیس از delete_at# به صورت زیر استفاده میکنیم:
برای حذف آخرین مقدار از pop# استفاده میکنیم:
برای حذف اولین مقدار از shift# استفاده میکنیم:
تغییر دادن ترتیب آرایه
آرایه را با استفاده از sort# میتوان مرتبسازی کرد:
برای معکوس کردن ترتیب عناصر آرایه از reverse# استفاده میکنیم:
برای تصادفی ساختن ترتیب عناصر آرایه از shuffle# و !shuffle# استفاده میکنیم. shuffle یک کپی از آرایه با عناصر تصادفی ایجاد میکند و !shuffle روی خود آرایه این کار را انجام میدهد:
نکته اضافی - انتخاب یک مقدار تصادفی از آرایه: sample# یک مقدار تصادفی از یک آرایه بازگشت میدهد:
Each# و Map#
این دو متد همراه با نسخههای مختلفشان احتمالاً یکی از مهمترین متدهای آرایهای در زبان برنامه نویسی روبی هستند. این متدها هر دو روی حلقه تکرار میشوند، اما تفاوت اصلی آنها این است که #each همواره آرایه اصلی را بازگشت میدهد و #Map یک آرایه جدید بازمیگرداند.
تعریف تکرار روی آرایه با استفاده از each#:
تعریف تکرار روی آرایه با یک اندیس به وسیله each_with_index#:
ایجاد یک شیء جدید با each: عبارت each_with_object# یک متد مفید است که امکان افزودن یک شیء مفروض در طی هر تکرار را فراهم میسازد. در نهایت به جای بازگشت آرایه اصلی، این شیء بازگشت مییابد:
همچنین میتوانید از with_object# برای به هم متصل ساختن each_with_index# استفاده کنید. برای نمونه میتوانید آرایههای صریح را سریعاً به شیءها تبدیل کنید:
تعریف تکرار روی آرایهها و ایجاد یک آرایه جدید با map#:
همچنان که در ruby رایج است، علامت ! به معنی این است که به جای بازگشت یک کپی، !map# آرایه اصلی را تغییر خواهد داد:
map.with_index#: با زنجیرهسازی چند with_index# میتوان به اندیس دسترسی یافت. توجه کنید که map# و with_index# دو متد مجزا هستند که متفاوت از each_with_index# محسوب میشوند:
متدهای مفید دیگر
بررسی خالی بودن آرایه با ?empty#:
الحاق (ترکیب) آرایهها: توجه کنید که ترتیب اضافه شدن آرایهها اهمیت دارد:
بررسی وجود مقداری با شرط خاص: ?any# مقدار درست/نادرست بازگشت میدهد. زمانی نتیجه true است که دست کم یکی از آیتمهای آرایه، شرط تعریف شده را داشته باشد و در غیر این صورت مقدار false بازگشت مییابد:
بررسی وجود یک شرط برای همه یا هیچ کدام از آیتمها: با استفاده از all# میتوانیم بررسی کنیم که آیا تکتک آیتمهای آرایه یک شرط خاص را دارند یا نه و #none نیز عکس آن عمل میکند.
یافتن مقدار نخست برای تطبیق شرط با find#:
بازگشت همه مقادیری که حائز یک شرط خاص هستند با select#:
اگر تنها تعداد آیتمهایی که یک شرط خاص را دارند برایتان مهم است، در این صورت میتوانید از count# استفاده کنید. این متد صرفاً تعداد مقادیر را بازگشت میدهد:
حذف عناصر تکراری یا مقدارهای nil: متد #uniq موارد تکراری را از آرایه حذف میکند و متد #copact نیز مقادیر تهی را پاک خواهد کرد. هر دو این متدها یک کپی از آرایه بازگشت میدهند. برای این که تغییرات روی آرایه اصلی اجرا شوند، میتوانید به ترتیب از متدهای uniq!# یا !#compact استفاده کنید:
سخن پایانی
به این ترتیب به پایان این مقاله با موضوع معرفی متدهای آرایه Ruby میرسیم. توجه کنید که این مقاله شامل همه متدهای مرتبط با آرایه نیست و صرفاً انواع مهمتر فهرست شدهاند.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- ساختمان های داده در روبی (Ruby) — درخت های دودویی
- ساخت اپلیکیشن اینستاگرام با Ruby on Rails (بخش اول) — از صفر تا صد
- داده های ساختگی (Dummy Data) در روبی، پرل و پایتون — راهنمایی از صفر تا صد
==