এটি এমন একটি পরিবর্তন যা এই টান অনুরোধেOptional(...)
ফলস্বরূপ স্ট্রিংয়ে অন্তরঙ্গকরণ প্রায়শই অনাকাঙ্ক্ষিত হওয়ার কারণে ঘটেছিল এবং স্পষ্টতই মোড়কযুক্ত বিকল্পগুলির ক্ষেত্রে বিশেষত অবাক হতে পারে । আপনি এখানে মেলিং তালিকায় এই পরিবর্তনের সম্পূর্ণ আলোচনা দেখতে পাবেন ।
যেমন টান অনুরোধ আলোচনায় উল্লিখিত হয়েছে (যদিও দুর্ভাগ্যক্রমে এক্সকোড দ্বারা নয়) - সতর্কবার্তাটি ব্যবহারের চেয়ে নীরব করার একটি সামান্য সুন্দর উপায় String(describing:)
হ'ল আপনি যা যা ইন্টারপোল্ট করছেন তার alচ্ছিক ধরণের একটি কাস্ট যুক্ত করা, উদাহরণস্বরূপ:
var i: Int? = 5
var d: Double? = nil
print("description of i: \(i as Int?)")
print("description of d: \(d as Double?)")
যা এটিকে সাধারণীকরণ করা যায় as Optional
:
print("description of i: \(i as Optional)")
print("description of d: \(d as Optional)")
এসই -0228 দ্বারা প্রবর্তিত নতুন স্ট্রিং ইন্টারপোলেশন সিস্টেমের সাথে সুইফ্ট 5 -এ , অন্য একটি বিকল্পের জন্য কাস্টম appendInterpolation
ওভারলোড যুক্ত করা DefaultStringInterpolation
:
extension DefaultStringInterpolation {
mutating func appendInterpolation<T>(optional: T?) {
appendInterpolation(String(describing: optional))
}
}
var i: Int? = 5
var d: Double? = nil
print("description of i: \(optional: i)")
print("description of d: \(optional: d)")
এবং, যদি ইচ্ছা হয়, আপনি এমনকি মডিউলটির মধ্যে (বা কোনও নির্দিষ্ট ফাইলের মধ্যে চিহ্নিত হিসাবে চিহ্নিত করেন fileprivate
) পুরোপুরি সতর্কতাটি অক্ষম করতে আর্গুমেন্ট লেবেলটি সরিয়ে ফেলতে পারেন :
extension DefaultStringInterpolation {
mutating func appendInterpolation<T>(_ optional: T?) {
appendInterpolation(String(describing: optional))
}
}
var i: Int? = 5
var d: Double? = nil
print("description of i: \(i)")
print("description of d: \(d)")
যদিও ব্যক্তিগতভাবে আমি যুক্তির লেবেল রাখতে পছন্দ করি।