as
আপকাস্টিং এবং ব্রিজড প্রকারে কাস্টিং টাইপ করার জন্য ব্যবহৃত হয়
as?
নিরাপদ ingালাই জন্য ব্যবহৃত, ব্যর্থ হলে শূন্য ফিরে
as!
forceালাই বলপূর্বক ব্যবহৃত, ব্যর্থ হলে ক্রাশ
বিঃদ্রঃ:
as!
rawচ্ছিকভাবে কাঁচা টাইপ নিক্ষেপ করতে পারবেন না
উদাহরণ:
let rawString: AnyObject = "I love swift"
let optionalString: AnyObject? = "we love swift"
let nilString: AnyObject? = (nil as String?)
let rawInt: AnyObject = Int(3)
let optionalInt: AnyObject? = Int(3)
let nilInt: AnyObject? = (nil as Int?)
উদাহরণ
var age: Int? = nil
var height: Int? = 180
একটি যুক্ত করে ? ডেটা টাইপের সাথে সাথেই আপনি সংকলককে বলবেন যে ভেরিয়েবলটিতে একটি নম্বর থাকতে পারে বা নাও থাকতে পারে। ঝরঝরে! লক্ষ্য করুন যে এটি Oচ্ছিক ধ্রুবকগুলি সংজ্ঞায়িত করার জন্য সত্যই অর্থবোধ করে না - আপনি কেবল একবারই তাদের মান নির্ধারণ করতে পারেন এবং তাই আপনি তাদের মান শূন্য হবে কিনা তা বলতে সক্ষম হবেন।
আমাদের কখন ব্যবহার করা উচিত? এবং কখন "!"
ধরা যাক আমাদের ইউআইকিট ভিত্তিক সহজ অ্যাপ্লিকেশন রয়েছে। আমাদের ভিউ কন্ট্রোলারে কিছু কোড রয়েছে এবং এর উপরে একটি নতুন ভিউ কন্ট্রোলার উপস্থাপন করতে চাই। এবং নেভিগেশন নিয়ামক ব্যবহার করে আমাদের স্ক্রিনে নতুন দৃষ্টিভঙ্গিটিকে ধাক্কা দেওয়ার সিদ্ধান্ত নেওয়া উচিত।
যেমনটি আমরা জানি প্রতিটি ভিউকন্ট্রোলারের উদাহরণটিতে একটি সম্পত্তি নেভিগেশন নিয়ামক থাকে। যদি আপনি কোনও নেভিগেশন নিয়ন্ত্রক ভিত্তিক অ্যাপ্লিকেশন তৈরি করে থাকেন তবে আপনার অ্যাপ্লিকেশানের মাস্টার ভিউ কন্ট্রোলারের এই সম্পত্তিটি স্বয়ংক্রিয়ভাবে সেট হয়ে গেছে এবং আপনি এটি ব্যবহার করতে বা পপ ভিউ নিয়ন্ত্রণকারীদের ব্যবহার করতে পারেন। আপনি যদি একটি একক অ্যাপ্লিকেশন টেম্পলেট টেম্পলেট ব্যবহার করেন - আপনার জন্য স্বয়ংক্রিয়ভাবে কোনও নেভিগেশন নিয়ামক তৈরি হবে না, সুতরাং আপনার অ্যাপ্লিকেশনটির ডিফল্ট দর্শন নিয়ামকটিতে নেভিগেশনকন্ট্রোলার বৈশিষ্ট্যে কোনও সঞ্চয় নেই।
আমি নিশ্চিত যে আপনি ইতিমধ্যে অনুমান করেছেন যে এটি কোনও alচ্ছিক ডেটাটাইপের জন্য হুবহু কেস। আপনি যদি ইউআইভিউকন্ট্রোলার পরীক্ষা করেন তবে দেখবেন সম্পত্তিটি এই হিসাবে সংজ্ঞায়িত হয়েছে:
var navigationController: UINavigationController? { get }
সুতরাং আসুন আমাদের ব্যবহার ক্ষেত্রে ফিরে যান। যদি আপনি এই সত্যের জন্য জানেন যে আপনার ভিউ কন্ট্রোলারের সর্বদা একটি নেভিগেশন কন্ট্রোলার থাকবে তবে আপনি এগিয়ে যেতে এবং এটিকে জড়ো করে জোর করতে পারেন:
controller.navigationController!.pushViewController(myViewController, animated: true)
আপনি যখন একটি রাখা! সম্পত্তি সংখ্যার পিছনে আপনি সংকলককে বলুন আমি এই সম্পত্তিটি alচ্ছিক তা বিবেচনা করি না, আমি জানি যে এই কোডটি যখন কার্যকর করা হয় তখন সর্বদা একটি মূল্য স্টোর থাকবে তাই এই ptionচ্ছিকটিকে একটি সাধারণ ডেটাটাইপের মতো আচরণ করুন। আচ্ছা ভাল না? যদি আপনার ভিউ কন্ট্রোলারে কোনও নেভিগেশন কন্ট্রোলার না থাকে তবে কী হবে? আপনি যদি পরামর্শ দেন যে সর্বদা নেভিগেশনতে কোনও মান সঞ্চিত থাকবে তবে নিয়ন্ত্রণকারী ভুল ছিল? আপনার অ্যাপ্লিকেশন ক্রাশ হবে। যে হিসাবে সহজ এবং কুরুচিপূর্ণ।
সুতরাং, ব্যবহার! আপনি যদি 101% নিশ্চিত হন তবে এটি নিরাপদ।
আপনি যদি নিশ্চিত না হন যে সর্বদা একটি নেভিগেশন নিয়ামক থাকবে? তাহলে আপনি ব্যবহার করতে পারেন? পরিবর্তে একটি!
controller.navigationController?.pushViewController(myViewController, animated: true)
কি? সম্পত্তির নামের পিছনে সংকলকটি বলে যে আমি জানি না যে এই সম্পত্তিটিতে শূন্য বা একটি মান রয়েছে কিনা তাই: যদি এর মান থাকে তবে এটি ব্যবহার করতে পারে এবং সঠিকভাবে পুরো ভাবটি শূন্য বিবেচনা করে। কার্যকরভাবে? কোনও নেভিগেশন নিয়ামক আছে ঠিক সেই ক্ষেত্রে আপনাকে সেই সম্পত্তিটি ব্যবহার করতে দেয়। কোনও ধরণের বা কোনও ধরণের কাস্টিংয়ের চেক না থাকলে। আপনি যখন নেভিগেশন কন্ট্রোলার রাখবেন কি না সেদিকে খেয়াল রাখবেন না এবং কেবল সেখানে থাকলেই কিছু করতে চান যখন এই বাক্য গঠনটি নিখুঁত।
Fantageek যাও বিশাল ধন্যবাদ