আমি সুইফটে লিখার সময় লক্ষ্য করেছি assertযে প্রথম মানটি টাইপ করা আছে
@autoclosure() -> Bool
একটি ওভারলোড পদ্ধতি সঙ্গে একটি জেনেরিক ফিরে যাওয়ার Tমাধ্যমে মান, পরীক্ষা অস্তিত্বের LogicValue protocol।
তবে হাতে থাকা প্রশ্নের সাথে কঠোরভাবে লেগে থাকা। এটি @autoclosureপ্রত্যাবর্তন করে এমনটি চায় যা প্রত্যাবর্তন করে Bool।
সত্যিকারের বন্ধের কথা লেখা যা কোনও প্যারামিটার নেয় না এবং কোনও বুলের কাজ করে না ফেরত দেয়, এটি আমাকে এই সংকলনটি বানানোর জন্য ক্লোজারটি কল করতে অনুরোধ করে:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
তবে সহজভাবে একটি বুল পাস করার কাজ করে:
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
তাই কি ঘটছে? কী @autoclosure?
সম্পাদনা: @auto_closure নতুন নামকরণ করা হয়েছিল@autoclosure
f({2 >1}())