اطلاعیه

Collapse
هیچ اطلاعیه ای هنوز ایجاد نشده است .

دوره آموزش swift - درس ۱۶ : Optionals

Collapse
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
new posts

  • دوره آموزش swift - درس ۱۶ : Optionals

    با سلام و عرض ادب
    optional یکی از بخش های پایه ای در کد نویسی swift است که به کاربر جهت نوشتن کد های بهتر ( کرش کمتر ) کمک می کند. به طور مثال اگر دقیقا ندانیم که یک متغیر معرفی شده دارای مقدار خواهد بود یا خیر از optional ها استفاده می کنیم. به طور مثال یک متغیر برای یک برنده لاتاری

    کد:
    var lotteryWinnings : int?
    علامت سوال اگر کد بالا این پیغام را به سوئیف می رساند که متغیر lotteryWinnings مشخص نیست که دارای مقدار خواهد شد یا خیر. در واقع اگر از علامت سوال در اینجا استفاده نکنید و سپس در طول برنامه, مقدار این متغیر سوال شود, اپلیکیشن شما کرش خواهد کرد

    در ادامه می توانیم به روش زیر بخواهیم که در صورت داشتن یک مقدار, آنرا پرینت کند (‌ از اینجا از علامت ! استفاده می کنیم. علامت ! در جلوی یک متغیر, آنرا مجبور به داشتن یک مقدار می کند

    کد:
    if lotteryWinnings != nil { print(lotteryWinnings!) }
    روش دیگر برای پرینت یک مقدار, در صورتی که دارای ? باشد و مشخص نباشد که مقدار دارد یا خیر از راه if let است (این راه بیشتر پیشنهاد می شود )

    کد:
    if let winning = lotteryWinnings{ print(winning) }
    در مثال دیگری یک کلاس ایجاد می کنیم برای اتومبیل. اما مدل آنرا به صورت optional معرفی می کنیم

    کد:
    class car { var model : String? } var vehicle : car? vehicle = car() vehicle?.model = "BMW 750" if let v = vehicle, let m = v.model { print(m) }
    سپس یک متغیر به نام vehicle ایجاد می کنیم و آنرا به کلاس car متصل می کنیم. اما در اینجا با گذاشتن علامت سوال می گوییم که نمی دانیم کلا برای کلاس car متغیری خواهیم داشت یا خیر
    در ادامه نیز مقداری برای آن در نظر می گیریم. در هنگام پرینت هم می گوییم که اگر اتومبیلی وجود داشته باشد که با v آنرا نشان داده ایم, چک کن که مدلی برای آن در نظر گرفته شده باشد یا خیر که اگر هر دو سال با جواب مثبت به پایان رسید. مدل را پرینت کن

    به نکته توجه داشته باشید که علامت سوال درون کد زیر

    کد:
    vehicle?.model = "BMW 750"
    زمانی استفاده می شود که متغیر مذکور به یک متفیر دیگر که دارای optional است وصل شده باشد.

    در بخش نخستین این آموزش گفتیم که اگر از علامت ! استفاده کنیم برای پرینت به مانند:

    کد:
    print(vehicle!.model)
    در صورت نبود مقدار, اپلیکیشن کرش خواهد کرد زیرا متغیر ! حتما می بایست که مقدار داشته باشد اما اگر در کد بالا به جای ! از علامت سوال استفاده کنیم می گوییم که نمی دانیم که متغیر مذکور مقدار دارد یا خیر, اما اگر داشت آنرا پرینت کن

    کد:
    print(vehicle?.model)
    استفاده از روش گفته شده برای پرینت تنها در حالتی توصیه می شود که مقدار مورد نظر بخش اصلی یک اپلیکیشن را تشکیل نداده باشد اما اگر آن مقدار, برای ادامه راه یک اپلیکیشن مهم باشد پیشنهاد می کنیم که از if let استفاده کنید.

    می توانیم مثال مربوط به optional را ادامه دهیم
    به طور مثال یک ارایه معرفی می کنیم و آنرا به کلاس car متصل می کنیم.
    باید به این نکته توجه کنیم که یک آرایه خالی مورد عجیبی نیست اما می توانیم برای پرینت روش جالبی را استفاده کنیم

    کد:
    var cars : [car]? cars = [car]() if let carArray = cars where carArray.count > 0 { } else { cars?.append(car()) print(cars?.count) }
    در این حالت می گوییم که اگر در آرایه مقداری وجود داشت در حالی که آن مقدار بزرگتر از صفر باشد آنرا پرینت کن.
    i-phone.ir
    The Best or Nothing



    Twitter : Rouzbeh7000
صبر کنید ..
X