لینک کوتاه مطلب : https://hsgar.com/?p=5558

به روبی از پایتون

پایتون یکی دیگر از زبان های برنامه نویسی با هدف عمومی بسیار خوب است. با رفتن از Python به Ruby، متوجه خواهید شد که سینتکس کمی بیشتر از Python برای یادگیری وجود دارد.

شباهت ها

همانند پایتون، در روبی،…

  • یک اعلان تعاملی وجود دارد (به نام irb).
  • می توانید اسناد را در خط فرمان بخوانید (با ri دستور به جای pydoc).
  • هیچ پایان دهنده خط خاصی وجود ندارد (به جز خط جدید معمولی).
  • لفظ رشته می تواند چندین خط مانند رشته های نقل قول سه گانه پایتون را پوشش دهد.
  • براکت‌ها برای فهرست‌ها و براکت‌ها برای دیکت‌ها (که در زبان روبی «هش» نامیده می‌شوند) هستند.
  • آرایه ها یکسان کار می کنند (افزودن آنها یک آرایه طولانی ایجاد می کند، اما ترکیب آنها به این صورت است a3 = [ a1, a2 ] آرایه ای از آرایه ها را به شما می دهد).
  • اشیاء به صورت قوی و پویا تایپ می شوند.
  • همه چیز یک شی است و متغیرها فقط ارجاع به اشیا هستند.
  • اگرچه کلمات کلیدی کمی متفاوت هستند، استثناها تقریباً یکسان هستند.
  • شما ابزارهای doc جاسازی شده دارید (Ruby’s rdoc نامیده می شود).
  • پشتیبانی خوبی برای برنامه نویسی تابعی با توابع درجه یک، توابع ناشناس و بسته شدن وجود دارد.

تفاوت

برخلاف پایتون، در روبی،…

  • رشته ها قابل تغییر هستند.
  • می توانید ثابت بسازید (متغیرهایی که قصد تغییر مقدار آنها را ندارید).
  • برخی موارد اجباری وجود دارد (مثلاً نام کلاس ها با حرف بزرگ شروع می شود، متغیرها با حروف کوچک شروع می شوند).
  • تنها یک نوع از کانتینر لیست (یک آرایه) وجود دارد و قابل تغییر است.
  • رشته های دو نقل قول اجازه می دهد تا دنباله های فرار (مانند t) و یک نحو خاص «جایگزینی بیان» (که به شما امکان می دهد نتایج عبارات روبی را مستقیماً در رشته های دیگر وارد کنید بدون اینکه نیازی به "add " + "strings " + "together"). رشته های تک نقل قول مانند پایتون هستند r"raw strings".
  • هیچ کلاس «سبک جدید» و «سبک قدیمی» وجود ندارد. فقط یک نوع (Python 3+ این مشکل را ندارد، اما به طور کامل با Python 2 سازگار نیست.)
  • شما هرگز به طور مستقیم به ویژگی ها دسترسی ندارید. با روبی، همه چیز فراخوانی روش است.
  • پرانتز برای فراخوانی روش معمولا اختیاری است.
  • وجود دارد public، private، و protected برای اعمال دسترسی، به جای پایتون _voluntary_ زیرخط __convention__.
  • “میکس” به جای ارث چندگانه استفاده می شود.
  • می توانید متدهای کلاس های داخلی را اضافه یا تغییر دهید. هر دو زبان به شما اجازه می‌دهند تا کلاس‌ها را در هر نقطه باز کرده و تغییر دهید، اما پایتون از اصلاح داخلی‌ها جلوگیری می‌کند – روبی این کار را نمی‌کند.
  • شما دارید true و false بجای True و Falsenil
    بجای None).
  • فقط وقتی برای حقیقت آزمایش شد false و nil ارزیابی به مقدار نادرست همه چیزهای دیگر درست است (از جمله 0، 0.0، ""، و []).
  • این است elsif بجای elif.
  • این است require بجای import. در غیر این صورت، استفاده یکسان است.
  • نظرات به سبک معمول در خط(های) در بالا چیزها (به جای رشته های مستند در زیر آنها) برای تولید اسناد استفاده می شوند.
  • تعدادی میانبر وجود دارد که اگرچه به شما اطلاعات بیشتری را می دهد، اما به سرعت یاد می گیرید. آنها تمایل دارند که روبی را سرگرم کننده و بسیار سازنده کنند.
  • هیچ راهی برای تنظیم یک متغیر پس از تنظیم (مانند پایتون) وجود ندارد del
    بیانیه). شما می توانید یک متغیر را بازنشانی کنید nil، به محتویات قدیمی اجازه می دهد زباله جمع آوری شود، اما متغیر تا زمانی که در محدوده باشد در جدول نماد باقی می ماند.
  • را yield کلمه کلیدی متفاوت رفتار می کند در پایتون اجرا را به محدوده خارج از فراخوانی تابع برمی گرداند. کد خارجی مسئول از سرگیری عملکرد است. در روبی yield تابع دیگری را که به عنوان آرگومان نهایی ارسال شده است اجرا می کند، سپس بلافاصله از سر می گیرد.
  • پایتون فقط از یک نوع توابع ناشناس پشتیبانی می‌کند، لامبدا، در حالی که روبی شامل بلوک‌ها، Procs و lambda است.

لینک منبع

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.