Skip to content

14. Type Conversion — اقسام کی تبدیلی

Difficulty: Intermediate — متوسط
Time: ~20 minutes


Converting to Number — عدد میں تبدیل

عدد() converts to integer:

لکھو(عدد("42"));        // 42
لکھو(عدد("  100  "));   // 100   (ignores whitespace)
لکھو(عدد(3.9));          // 3     (truncates decimal)
لکھو(عدد(سچ));           // 1
لکھو(عدد(جھوٹ));         // 0
لکھو(عدد("abc"));        // nan   (failed — NaN)

اعشاریہ() converts to float:

لکھو(اعشاریہ("3.14"));   // 3.14
لکھو(اعشاریہ("10"));     // 10.0
لکھو(اعشاریہ(5));         // 5.0

اردو: عدد() صحیح عدد کے لیے (اعشاری حصہ کاٹ دیتا ہے)۔ اعشاریہ() اعشاری عدد کے لیے۔ تبدیلی ناکام ہو تو nan ملتا ہے۔


Converting to String — متن میں تبدیل

متن() converts anything to a string:

لکھو(متن(42));           // "42"
لکھو(متن(3.14));         // "3.14"
لکھو(متن(سچ));           // "True"
لکھو(متن(جھوٹ));         // "False"
لکھو(متن(خالی));         // "None"
لکھو(متن([1, 2, 3]));    // "[1, 2, 3]"

اردو: ہر قسم کو متن() سے متن میں بدلا جا سکتا ہے — عدد، بولین، فہرست سب۔


Converting to Boolean — بولین میں تبدیل

بولین() shows what is "truthy" or "falsy":

// Falsy values — جھوٹ قدریں
لکھو(بولین(0));        // False
لکھو(بولین(0.0));      // False
لکھو(بولین(""));       // False
لکھو(بولین([]));       // False
لکھو(بولین({}));       // False
لکھو(بولین(خالی));     // False

// Truthy values — سچ قدریں
لکھو(بولین(1));        // True
لکھو(بولین(-1));       // True
لکھو(بولین("0"));      // True   (non-empty string!)
لکھو(بولین("اردو"));   // True
لکھو(بولین([0]));      // True   (non-empty list!)

اردو: 0, "", [], {}, خالی — یہ جھوٹ ہیں۔ باقی سب سچ۔ نوٹ: "0" (متن صفر) سچ ہے کیونکہ خالی نہیں۔


Checking Types — قسم جانچنا

قسم() returns the Urdu type name:

لکھو(قسم(42));           // عدد
لکھو(قسم(3.14));         // عدد
لکھو(قسم("اردو"));       // متن
لکھو(قسم(سچ));           // بولین
لکھو(قسم(خالی));         // خالی
لکھو(قسم([1, 2]));       // فہرست
لکھو(قسم({ ک: "ق" }));  // شے

Checking for NaN — ناقص عدد جانچنا

متغیر ن = عدد("abc");     // nan
لکھو(نان_ہے(ن));          // True
لکھو(نان_ہے(42));         // False

Safe conversion pattern — محفوظ تبدیلی:

فنکشن محفوظ_عدد(م, ڈیفالٹ = 0) {
    متغیر ق = عدد(م);
    اگر (نان_ہے(ق)) {
        واپس ڈیفالٹ;
    }
    واپس ق;
}

لکھو(محفوظ_عدد("100"));        // 100
لکھو(محفوظ_عدد("abc"));        // 0   (default)
لکھو(محفوظ_عدد("abc", -1));    // -1  (custom default)

Implicit Conversions — خودکار تبدیلی

Some conversions happen automatically:

// Number + String → String (via template literal)
متغیر عمر = 25;
لکھو(`عمر: ${عمر}`);         // عمر: 25  ✓

// But + operator with number + string:
// لکھو("عمر: " + عمر);     // May error — use متن() to be safe
لکھو("عمر: " + متن(عمر));   // عمر: 25  ✓

Conversion Summary — خلاصہ

Function From To Example
عدد(ق) str, float, bool integer عدد("42")42
اعشاریہ(ق) str, int, bool float اعشاریہ("3.14")3.14
متن(ق) any string متن(100)"100"
بولین(ق) any boolean بولین(0)جھوٹ
قسم(ق) any type name string قسم(42)"عدد"

Practical Example: Form Validation — عملی مثال: فارم جانچ

فنکشن فارم_جانچیں(نام_م, عمر_م, ای_میل) {
    متغیر غلطیاں = [];

    اگر (نہیں نام_م یا نام_م.چھاٹو() == "") {
        غلطیاں.شامل("نام خالی ہے");
    }

    متغیر عمر = عدد(عمر_م);
    اگر (نان_ہے(عمر)) {
        غلطیاں.شامل("عمر عدد ہونی چاہیے");
    } ورنہ_اگر (عمر < 1 یا عمر > 120) {
        غلطیاں.شامل(`غلط عمر: ${عمر}`);
    }

    اگر (نہیں ای_میل.شامل_ہے("@")) {
        غلطیاں.شامل("ای میل غلط ہے");
    }

    واپس غلطیاں;
}

متغیر غ = فارم_جانچیں("احمد", "25", "ahmed@example.com");
لکھو(غ.لمبائی == 0 ? "فارم درست" : غ);    // فارم درست

متغیر غ2 = فارم_جانچیں("", "abc", "invalid");
لکھو(غ2);    // ['نام خالی ہے', 'عمر عدد ہونی چاہیے', 'ای میل غلط ہے']

Key Points — اہم نکات

  • عدد(ق) → integer; اعشاریہ(ق) → float
  • متن(ق) → string (works on any type)
  • بولین(ق)سچ or جھوٹ
  • قسم(ق) → returns Urdu type name
  • نان_ہے(ق) → check if conversion failed
  • Always check نان_ہے() after عدد() on user input

اردو: عدد() عدد میں، متن() متن میں، بولین() بولین میں، قسم() قسم جاننا، نان_ہے() ناکام تبدیلی جانچنا۔


← Previous: JSON | Next: Threading →