🔴 اعداد در کاتلین چطور کار می کنن؟وقتی توی کاتلین عددی می‌نویسید خودش تشخیص میده چه نوعی باشه. مثلا

🔴 اعداد در کاتلین چطور کار می کنن؟وقتی توی کاتلین عددی می‌نویسید خودش تشخیص میده چه نوعی باشه. مثلاً:val x = 10 // عدد صحیح → نوع Int val y = 3.14 // عدد اعشاری → نوع Double اما گاهی خودتون هم می‌تونید بگید که عدد چه نوعی باشه:val a: Int = 25         // عدد صحیح معمولیval b: Long = 100000L   // عدد خیلی بزرگ، آخرش L می‌ذاریمval c: Float = 3.14F    // عدد اعشاری کم‌دقت، آخرش F می‌ذاریم🔴 Nullable Typeفرض کن یه متغیر عددی داریم که شاید هنوز مقدار نداشته باشه.مثلاً:val age: Int? = null اون علامت ? یعنی ممکنه این عدد «خالی» باشه. اگر بخوای بهش دست بزنید باید مراقب باشید. مثلاً:println(age?.plus(1)) // اگر age خالی نباشه، یک واحد اضافه کن 🔴 Boxed Type وقتی یه عدد nullable می‌شه یا جایی استفاده می‌شه که نیاز به شیء (object) داره، دیگه عدد ساده نیست. بلکه داخل یه جعبه (Box) قرار می‌گیره تا مثل یه شیء باهاش رفتار بشه.مثلاً:val a: Int = 1000 // این عدد ساده‌ست (سریع و مستقیم تو حافظه) val b: Int? = 1000 // این boxed شده، چون nullable هست println(a === a) // true، چون دوتاش یکیه println(b === b) // false، چون دوتا شیء جدا ساخته شدن 🔴 Primitive اعداد ساده مثل Int و Double وقتی توی حافظه ذخیره می‌شن، به صورت مستقیم (و سریع) هستن.اینا رو می‌گن Primitive types.اما وقتی یه عدد nullable بشه یا توی لیستی قرار بگیره که نوعش شیء باشه، اون وقت دیگه primitive نیست، و Boxed می‌شه. یعنی تبدیل به یه شیء می‌شه و سرعتش یکم کمتر می‌شه.نتیجه:📌وقتی یه عدد رو مستقیم تعریف می‌کنی خودش Int یا Double در نظر گرفته می‌شه.📌اگر بخوای یه عدد null هم بشه باید ? بذاری.📌اعداد nullable یا بعضی وقتا توی لیست‌ها boxed می‌شن یعنی مثل شیء رفتار می‌کنن.