هر متغییر در محدوده و قلمرو خود معتبر است .

که قلمرو ها در kotlin fille(Kt.file) ها به دو دسته قلمرو سراسری یا Global (گلوبال) و قلمرو های داخل بدنه ی fun main , fun main2 , fun main 3, ... تقسیم بندی

می شوند.

و اگر متغییر هم نام در قلمرو سراسری در یکی از main ها نباشد و خروجی تمام قلمرو ها متغییر مذکور باشد . هیچ Error داده نخواهد شد بلکه متغییر گلوبال در Scope ای که فاقد متغییر مذکور می باشد چاپ خواهد شد .

این مثالی که الان می گویم به درک این موضوع کمک خواهد کرد :

در روستایی به دلیل عدم رعایت مسائل معماری ساختمانی یک ده بزرگ دچار مصرف بیش اندازه انرژی گرمایشی در زمستان می شود . حالا اگر این روستا دهیار داشته باشد مسئله کاملا حل می شود و دهیار خود اقدام به تهیه پشم شیشه کرده و به مرور ساختمان ها را عایق گرما و سرما خواهد نمود . (مثالی که در مورد main هایی که دارای متغییر هم نام متغییر گلوبال هستند .)

حال اگر روستای مد نظر دهیار نداشته باشد این موضوع به استانداری می رود و اگر برای استانداری قابل حل نباشد به مرانب بالا تر خواهد رفت تا جایی که حل می شود و به اصطلاح به ان می گوییم مشکل سراسری Global حل می شود .(مثالی بود در مورد تنها main ای که فاقد متغییر هم نام با متغییر سراسری می باشد )

قلمرو ها در کاتلین کلاس(kt.Class)به یک صورت بیشتر تعریف نمی شوند قلمرو اصلی که در بدنه اصلی نوشته می شود و قلمرو های فرعی که می توانند به صورت تابع تو در تو نوشته شوند و هرکدام از قلمرو قبلی پیروی کند یا به صورت مرتب قلمرو های مختلف از یک نام متغییر کنارهم چیده شوند با بدنه مخصوص به خودشان و تو در تو نباشند .

حالا دو تصویر در محیط Intelij Idea در مورد کاتلین فایل ها بارگذاری خواهم کرد .

و یک تصویر هم در همین محیط در مورد کاتلین کلاس ها بارگذاری می کنم .

دو تصویر اول :

>
kt.file

>
console from kt.file

یک تصویر مربوط به کاتلین کلاس :

>
kt.Class