فصل1_ بخش هشتم : Variable's Scope(محدوده متغییر ها )
هر متغییر در محدوده و قلمرو خود معتبر است .
که قلمرو ها در kotlin fille(Kt.file) ها به دو دسته قلمرو سراسری یا Global (گلوبال) و قلمرو های داخل بدنه ی fun main , fun main2 , fun main 3, ... تقسیم بندی
می شوند.
و اگر متغییر هم نام در قلمرو سراسری در یکی از main ها نباشد و خروجی تمام قلمرو ها متغییر مذکور باشد . هیچ Error داده نخواهد شد بلکه متغییر گلوبال در Scope ای که فاقد متغییر مذکور می باشد چاپ خواهد شد .
این مثالی که الان می گویم به درک این موضوع کمک خواهد کرد :
در روستایی به دلیل عدم رعایت مسائل معماری ساختمانی یک ده بزرگ دچار مصرف بیش اندازه انرژی گرمایشی در زمستان می شود . حالا اگر این روستا دهیار داشته باشد مسئله کاملا حل می شود و دهیار خود اقدام به تهیه پشم شیشه کرده و به مرور ساختمان ها را عایق گرما و سرما خواهد نمود . (مثالی که در مورد main هایی که دارای متغییر هم نام متغییر گلوبال هستند .)
حال اگر روستای مد نظر دهیار نداشته باشد این موضوع به استانداری می رود و اگر برای استانداری قابل حل نباشد به مرانب بالا تر خواهد رفت تا جایی که حل می شود و به اصطلاح به ان می گوییم مشکل سراسری Global حل می شود .(مثالی بود در مورد تنها main ای که فاقد متغییر هم نام با متغییر سراسری می باشد )
قلمرو ها در کاتلین کلاس(kt.Class)به یک صورت بیشتر تعریف نمی شوند قلمرو اصلی که در بدنه اصلی نوشته می شود و قلمرو های فرعی که می توانند به صورت تابع تو در تو نوشته شوند و هرکدام از قلمرو قبلی پیروی کند یا به صورت مرتب قلمرو های مختلف از یک نام متغییر کنارهم چیده شوند با بدنه مخصوص به خودشان و تو در تو نباشند .
حالا دو تصویر در محیط Intelij Idea در مورد کاتلین فایل ها بارگذاری خواهم کرد .
و یک تصویر هم در همین محیط در مورد کاتلین کلاس ها بارگذاری می کنم .
دو تصویر اول :
یک تصویر مربوط به کاتلین کلاس :