تاریخ امروز :
iOS
macOS
Xcode
iTunes
نمایش نتایج: از 1 به 1 از 1

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

  1. #1
    تاریخ عضویت
    Dec 2008
    محل سکونت
    Germany
    نوشته ها
    11,541
    ورژن iOS
    10.3
    ورژن Mac
    10.12.4
    سپاس
    14,686
    از این کاربر 83,024 بار در 14,014 ارسال سپاس شده است.

    پیش فرض دوره آموزش 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

  2. 3 کاربر زیر از roozbeh7000 عزیز به خاطر این پست مفید سپاس کرده اند .


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 21-06-2016, 06:44 PM
  2. پاسخ: 2
    آخرين نوشته: 24-05-2016, 11:08 AM
  3. پاسخ: 0
    آخرين نوشته: 23-05-2016, 06:06 AM
  4. پاسخ: 0
    آخرين نوشته: 17-05-2016, 03:09 AM
  5. دوره آموزش swift - درس ۷ : حلقه For و آرایه
    توسط roozbeh7000 در انجمن آموزش ها
    پاسخ: 1
    آخرين نوشته: 09-05-2016, 05:20 AM

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
اطلاعات سایت
لینک دوستان
درباره سایت
انجمن تخصصی آيفون در سال ۲۰۰۷ با عرضه‌ی اولين نسل گجت‌های iOS اپل فعاليت خود را آغاز نمود. مفتخر هستيم که تا اين لحظه پيشتاز خدمت رسانی به کاربران ايرانی محصولات اپل باشيم.

اکنون ساعت 08:12 PM برپایه ساعت جهانی (GMT - گرینویچ) +4.5 می باشد.

Powered by vBulletin® Version 4.2.3
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.