সুইফ্ট জাভাস্ক্রিপ্টের মতো ভাষার মতো নয়, যেখানে আপনি প্যারামিটারগুলি পাস না করে কোনও ফাংশন কল করতে পারেন এবং এটি এখনও কল করা হবে। তাই সুইফটে কোনও ফাংশনটি কল করার জন্য আপনাকে এর পরামিতিগুলিতে একটি মান নির্ধারণ করতে হবে ।
পরামিতিগুলির জন্য ডিফল্ট মানগুলি আপনাকে ফাংশনটি কল করার সময় নির্দিষ্ট করে না দিয়ে কোনও মান নির্ধারণ করতে দেয়। এই কারণেই test()
যখন আপনি পরীক্ষার ঘোষণায় কোনও ডিফল্ট মান নির্দিষ্ট করেন তখন কাজ করে।
আপনি যে ডিফল্ট মান অন্তর্ভুক্ত করবেন না থাকে, তাহলে আপনি কল মান প্রদান করা প্রয়োজন: test(nil)
।
এছাড়াও, এবং সরাসরি এই প্রশ্নের সাথে সম্পর্কিত নয়, তবে সম্ভবত লক্ষণীয়, আপনি সুইফটে সম্ভাব্য নীল বিকল্পগুলি মোকাবেলার জন্য সম্ভবত "নাল পয়েন্টারগুলি" ব্যবহার করার পদ্ধতিটি ব্যবহার করছেন। নিম্নলিখিত কোডটি নিরাপদ (বিশেষত মাল্টিথ্রেডিং সফ্টওয়্যারটিতে), এবং এটি আপনাকে alচ্ছিকের বাধ্যতামূলক আন-র্যাপিং এড়াতে সহায়তা করে:
func test(firstThing: Int? = nil) {
if let firstThing = firstThing {
print(firstThing)
}
print("done")
}
test()
func test(firstThing: Int = 4)
:Optional
ডিফল্ট মান সহ একটি অ- পরামিতি।Optional
টাইপ (যা কি?
করার জন্য একটি টাইপ নাম বিস্তৃতি) একটি মান প্রকার; "alচ্ছিক প্যারামিটার" একটি প্যারামিটারের দুর্ভাগ্যজনক নাম যা কোনও ফাংশন কলে উপস্থিত থাকুক বা নাও থাকুক, তার ধরন নির্বিশেষে।